Firebase读取特定键值

时间:2018-02-07 03:24:09

标签: javascript firebase firebase-realtime-database

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

这是我的.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数据结构

APPNAME

  • 用户
    • 用户名:" a1"
      • 电子邮件:" ",
      • firstname:" abc",
      • 姓氏:" xyz"

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

2 个答案:

答案 0 :(得分:4)

var userref = database.ref("users/"+currentusername);

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

这很有效!!!

答案 1 :(得分: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);
    }); 
}