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

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

本文关键字:用户 节点 设置 元数据 uid 返回 Firebase-      更新时间:2023-09-26

我正试图从Firebase中的Users节点检索数据,并将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);
      };

对于返回的"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 |.one

Firebase |.set