【问题标题】:Firebase - return user uid and set user meta data value to different nodeFirebase - 返回用户 uid 并将用户元数据值设置为不同的节点
【发布时间】:2016-05-06 10:10:26
【问题描述】:

我正在尝试从 Firebase 中的用户节点检索数据,并将 set() 中检索到的数据用于另一个节点。具体来说,我想使用我的用户 UID 来查看用户属于哪个“分支”,然后使用 set() 中的值

我有以下快照来获取用户的“分支”。它将正确的值记录到控制台

    var ref = new Firebase("firebase/url");
    var authData = ref.getAuth();
    var userUID = authData.uid
    var userRef = new Firebase("firebase/URL" + userUID);      



 userRef.once("value", userBranch)

     function userBranch(snapshot) {
     var data = snapshot.val();
     console.log(data.branch);
      };

使用返回的“分支”值,我想在下面的 set() 中使用它

    var postsRef = ref.child("Posts");
    var newPostRef = postsRef.push();
    var postID = newPostRef.key();


    postsRef.child(postID).set({
         branch: data.branch})

从函数 userBranch 中取出值以便我可以在 set() 中使用它的最佳方法是什么?

【问题讨论】:

    标签: javascript firebase firebase-realtime-database


    【解决方案1】:

    您使用.once 有点错误,但您的想法是正确的。

    var ref = new Firebase("firebase/url");
    var authData = ref.getAuth();
    var userUID = authData.uid
    var userRef = new Firebase("firebase/URL" + userUID);      
    
    // Second parameter is callback function that receives data (snapshot)
    userRef.once("value", function(snapshot) {)
        var data = snapshot.val();
        console.log(data.branch);
        // Save value at data.branch
        var dataBranch = data.branch;
    
        var postsRef = ref.child("Posts");
        var newPostRef = postsRef.push();
        var postID = newPostRef.key();
    
        // Save it, erasing all previous data at location
        postsRef.child(postID).set({
            "branch": dataBranch
        });
    
    };
    

    您对.once 的第二个参数有点混淆。

    参考资料:

    Firebase | .push

    Firebase | .once

    Firebase | .set

    【讨论】:

      猜你喜欢
      • 2020-12-07
      • 1970-01-01
      • 2018-06-13
      • 2018-10-14
      • 1970-01-01
      • 2015-08-26
      • 1970-01-01
      • 2020-07-31
      • 2017-12-24
      相关资源
      最近更新 更多