【问题标题】:React + Firebase saving issue. Why this Hash?React + Firebase 保存问题。为什么这个哈希?
【发布时间】:2018-04-08 13:06:56
【问题描述】:

我使用 React 将我的数据保存到数据库中,如下所示:

export const matchesInitialCreate = (user, matches) => {

  return (dispatch) => {
    firebaseApp.database().ref(`/users/${user}/matches`)
      .push(matches)
      .then(() => {
       dispatch({ type: MATCHES_INITIAL_CREATE });

  });
 };
};

我的matches实体是一个带有一些数据的简单json,分为

matches:{ groups: {...}, knockout {...}}}

一切看起来都很好,但是当我将它推送到 firebase 时,它​​会用哈希值保存。像这样:

            users/user/matches/CRAZY_HASH/matches/groups

但我希望它像这样保存:

            users/user/matches/groups

我做错了什么?

【问题讨论】:

    标签: javascript reactjs firebase react-native firebase-realtime-database


    【解决方案1】:

    Firebase 实时数据库有 different ways to save data

    • 推送generates a unique key在指定的引用处,并将给定的数据写入这个新的孩子下
    • 设置:将数据保存到指定的引用,替换该路径中的任何现有数据
    • 更新:更新指定引用的低级子值

    您看到疯狂哈希的原因是您使用的是push 方法。如果要直接在users/{user}/matches/groups下设置数据,则必须使用setupdate

    // Will override everything
    firebaseApp.database().ref(`/users/${user}/matches`).set(matches)
    
    // Will update specific children
    firebaseApp.database().ref(`/users/${user}/matches`).update(matches)
    

    【讨论】:

    • 救我一命。谢谢安托万!
    • 费尔南多不客气! :) 如果这是您的问题的答案,请通过单击复选标记考虑accepting it。这向更广泛的社区表明您已经找到了解决方案,并为回答者和您自己提供了一些声誉。没有义务这样做。
    猜你喜欢
    • 1970-01-01
    • 2020-07-05
    • 1970-01-01
    • 2015-12-04
    • 2011-06-04
    • 1970-01-01
    • 2013-03-24
    • 2011-06-06
    • 1970-01-01
    相关资源
    最近更新 更多