以下内容获取子节点的父键。 有没有办法将结果(父键)放在函数之外,例如全局变量或其他东西。 我希望能够调用一个返回父键的函数
这有效(在控制台中返回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/