Firebase - return 用户 uid 并将用户元数据值设置为不同的节点

Firebase - return user uid and set user meta data value to different node

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

中的值

我有以下快照来获取用户的 "branch"。它向控制台记录正确的值

    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);
      };

使用返回的 "branch" 值我想在下面的 set()

中使用它
    var postsRef = ref.child("Posts");
    var newPostRef = postsRef.push();
    var postID = newPostRef.key();


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

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

你用的.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