【发布时间】:2022-01-14 14:34:21
【问题描述】:
这是我遇到问题的两种方法。我正在尝试从 FireStore DB 中读取一个值并将其返回给另一个方法,但是即使我能够在第二种方法中按预期打印该值,我总是将未定义为我的返回值。我也尝试增加超时。我可能无法使用 useState(),因为我在 if 条件下从不同的方法调用 updateScore 方法,因此显示反应挂钩规则错误。
export function updateScore(username, Score, registerCallBack) {
var s = getScore(username)
setTimeout(() => {
console.log("++++++++")
console.log(s) // Always undefined
console.log("++++++++")
firebase.firestore()
.collection('Users')
.doc(username)
.update(
{
score: Score + s
}
)
}, 10000);
}
export function getScore(username) {
console.log(username)
firebase.firestore()
.collection('Users')
.doc(username)
.get().then((doc) => {
console.log(doc.data().score) // PRINTING as Expected
var score = doc.data().score;
setTimeout(() => {
console.log("-------")
console.log(score) // PRINTING as Expected
console.log("-------")
return score;
}, 50);
})
}
【问题讨论】:
标签: react-native expo