【问题标题】:Returned Value always coming as undefined返回值总是未定义
【发布时间】: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


    【解决方案1】:

    我认为您应该将 firestore 函数分配给一个变量并返回该变量。

    【讨论】:

      猜你喜欢
      • 2019-05-21
      • 2011-05-21
      • 1970-01-01
      • 1970-01-01
      • 2019-11-21
      • 1970-01-01
      • 1970-01-01
      • 2016-03-09
      • 1970-01-01
      相关资源
      最近更新 更多