gpt4 book ai didi

javascript - 如何对 firebase 进行异步调用?

转载 作者:行者123 更新时间:2023-11-29 10:03:47 26 4
gpt4 key购买 nike

我正在努力从 Firebase 检索数据。基本上我正在创建一个约会应用程序,当用户“喜欢”某人时,它应该检查显示的用户喜欢的人数组以查看当前用户是否在那里,然后“匹配”他们,如果他们是的话

我有这个功能:

  pullFromFirebase = (displayedUser) => {
return new Promise((resolve, reject) => {
firebase.database().ref('users/' + displayedUser.id + '/usersLiked/').once('value').then(function(snapshot) {
const users = Object.keys(snapshot.val()).map(function(key) {
return snapshot.val()[key];
})
});
})
}

此功能有效,因为当我使用 console.log(users) 时,我得到了喜欢的人的数组。然而,当我这样调用这个函数时

 async checkForMatch (currentUser, displayedUser) {
const likedUsers = await this.pullFromFirebase(displayedUser);
console.log(likedUsers, 'likedUsers');
}

控制台中没有记录任何内容?当我拿走异步的东西时,console.log 只是说它正在等待。我做错了什么或者为什么我不能在我的 checkformatch 函数中显示用户?

最佳答案

你从未在 pullFromFirebase 方法中解决你的 promise

检查代码

pullFromFirebase = (displayedUser) => 
{
return new Promise((resolve, reject) =>
{
firebase.database().ref('users/' + displayedUser.id + '/usersLiked/').once('value').then(function (snapshot)
{
const users = Object.keys(snapshot.val()).map(function (key) {
return snapshot.val()[key];
})

resolve(users); // <--- here is the fix
});
})
}

关于javascript - 如何对 firebase 进行异步调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48491064/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com