【问题标题】:Retrieving data from Firebase Realtime Database from React-redux app从 React-redux 应用程序从 Firebase 实时数据库中检索数据
【发布时间】:2019-03-22 01:30:22
【问题描述】:

我正在尝试根据子值 matchID 从我的 Firebase 实时数据库中查询数据。

下面是我的 matchPredictions 表的 JSON 导出,其中只有一个条目。

{
  "-LP0aVMsmqfdHj7yfPnK" : {
    "matchID" : "-LP0LKl_nR4VQf6Gxwz8",
    "matchKickoff" : "2019-01-12T12:00",
    "teamAName" : "Germany",
    "teamAScore" : "2",
    "teamBName" : "Denmark",
    "teamBScore" : "3",
    "userId" : "RZVbxcIB1SWxj0ohgJDqkEU9ia13"
  }
}

我有以下被调用的函数..

export const fetchPredictionsForCompletedMatch = (match, token) => {
    console.log("Match is " +match);
    console.log("matchPredictionsFBRef is " + matchPredictionsFBRef);
    const retrievePreds = matchPredictionsFBRef.orderByChild("matchID").equalTo(match).on("value",
        function(snapshot){
        console.log("Snapshot here is "+ snapshot);
    });
    return dispatch => {
        retrievePreds.then(
            response => dispatch(addMatchResultSuccess(match))
        )
            .catch(
                err => dispatch(addMatchResultFail(err))
            )
    }
}

match 的值是预期的 -LP0LKl_nR4VQf6Gxwz8 并且 matchPredictionsFBRef 是 https://projectOne.firebaseio.com/matchPredictions, 这是我要查询的表。

运行时会抛出错误“错误是 TypeError:retrievePreds.then 不是函数”,并且快照不会打印到控制台。

任何帮助将不胜感激。谢谢。

【问题讨论】:

    标签: reactjs firebase-realtime-database react-redux


    【解决方案1】:

    你能在链接之前调用函数吗?

    retrievePreds().then()

    【讨论】:

    • 如果我做 retrievePreds().then( ... 那么它似乎调用了函数,但我的控制台输出打印..."这里的快照未定义"。
    • 你能在codesandbox中重现,以便我可以进一步帮助你,需要记录一些事情
    • 嗨。我会试一试的。我先在那里玩一玩,这不是我经常使用的东西。
    【解决方案2】:

    Firebase 的on() 方法可以多次给出结果。由于 Promise 只能解析一次,on() 方法无法返回 Promise。

    如果您只想获得一次结果,请使用 Firebase 的 once() 方法而不是 on()

    const retrievePreds = matchPredictionsFBRef.orderByChild("matchID").equalTo(match).once("value",
      ...
    

    【讨论】:

      猜你喜欢
      • 2019-04-16
      • 2020-12-09
      • 2020-09-18
      • 2021-02-06
      • 1970-01-01
      • 2018-09-11
      • 2019-02-04
      • 2019-05-30
      • 2019-11-28
      相关资源
      最近更新 更多