【问题标题】:Firebase reading a particular key valuesFirebase 读取特定键值
【发布时间】:2018-07-17 06:03:12
【问题描述】:

基本上,我将用户名作为用户数据的密钥。现在我正在尝试将用户名与存储在会话存储中的当前用户名进行匹配,并读取该用户名的用户数据。

这是我的 .js 代码

var database = firebase.database();
var currentusername = sessionStorage.getItem("username");
var userref = database.ref("users");

  userref.orderByChild("username").equalTo(currentusername).once("value").then(function(snapshot) {
        console.log(snapshot.val());
 });

Firebase 数据结构

应用名称

  • 用户
    • 用户名:“a1”
      • 电子邮件:“”,
      • 名字:“abc”,
      • 姓氏:“xyz”

当我尝试运行上述代码时,我将 snapshot.val() 设为 null,尽管存在具有匹配用户名键的记录。

【问题讨论】:

  • 很高兴听到您自己找到了解决方案。请将其作为单独的答案发布,而不是将其添加到 Stack Overflow 与大多数论坛不同的问题中,并且单独(接受)答案是表明您的问题已得到解决的最佳方式。

标签: javascript firebase firebase-realtime-database


【解决方案1】:
var userref = database.ref("users/"+currentusername);

    userref.once("value").then(function(snapshot)

成功了!!!

【讨论】:

    【解决方案2】:

    这应该可以工作

    var currentusername;
    try {
        currentusername = sessionStorage.getItem("username");    
    }
    catch(error) {
        console.log("shucks " + error);
    }
    
    if(currentusername){
    firebase.database().ref("users").child(currentusername).once('value').then(function(snap) {
            if(snap.val()){
                console.log(snap.val().firstname);
            }
        }, function(error) {
            // The Promise was rejected.
            console.log('Error: ',error);
        }); 
    }  
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-18
      • 2017-09-03
      • 1970-01-01
      • 2018-12-02
      • 1970-01-01
      相关资源
      最近更新 更多