javascript - 如何在其功能之外使用父 key 请求的结果

标签 javascript firebase

以下内容获取子节点的父键。 有没有办法将结果(父键)放在函数之外,例如全局变量或其他东西。 我希望能够调用一个返回父键的函数

这有效(在控制台中返回parent.key)

firebase.auth().onAuthStateChanged(function(user){
    var ref = firebase.database().ref('users');
    ref.orderByChild('uid').equalTo(user.uid).on("value", function(snapshot) {
        snapshot.forEach((function(child) { console.log(child.key) }));
    });
});

这不起作用

var test;
firebase.auth().onAuthStateChanged(function(user){
    var ref = firebase.database().ref('users');
    ref.orderByChild('uid').equalTo(user.uid).on("value", function(snapshot) {
        snapshot.forEach((function(child) { test = child.key }));
    });
});
console.log(test);

最佳答案

以下应该有效

function f_returnUserDetails(a){
    var key;
    var childData;
    return new Promise(function(resolve, reject) { 
        firebase.database().ref('/users/').orderByChild("uid").equalTo(a).on('value', function (snapshot) {
            snapshot.forEach(function(childSnapshot) {
                key = childSnapshot.key;
                childData = childSnapshot.val();
                resolve([childData, childSnapshot.key]);
            });
        });
    });
};


firebase.auth().onAuthStateChanged(function(user){
    var user = firebase.auth().currentUser;
    var uid = user.uid;
    f_returnUserDetails(uid).then((dbItems) => {
        console.log(dbItems[1])
    });
});

关于javascript - 如何在其功能之外使用父 key 请求的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53666075/

相关文章:

Firebase 您的 Cloud Firestore 数据库对于基本安全规则有不安全的规则

javascript - 填写后自动提交单一表单输入框

android - Firebase 实时数据库是否延迟向监听器发送值

javascript - 试图从我的 json 中减去一个值但它返回 nan

javascript - 具有 Neurosky 传感器输入的多个 HTML5 Canvas 无法正常工作

firebase - 是否可以向 Firebase 默认 'session_start' 事件添加参数?

firebase - 正确使用 Firebase 中的引用文献中的 hasChild() 和 forEach() 吗?

javascript - 在 ng-repeat 中获取 Firebase 对象名称值

javascript - ASP.NET MVC 2 : Where to put custom JS files?

javascript - 如何生成 1 到 100 万之间的随机数?