在firebase中存储空数组

IT技术 javascript arrays reactjs firebase firebase-realtime-database
2021-05-16 19:00:25

我的 firebase 应用程序与 React 一起使用,我注册用户,然后将那里的信息记录到数据库中。我正在创建一个“约会应用程序”,我想要某种方式来存储空数组。例如,matchers: []等等

我试过这样的事情:

firebase.database().ref('users/' + userId).set({
      id: userId,
      username: name,
      email: email,
      matchers: [],
      likedUsers: [],
      disLikedUsers: []
    });

但后来读到 firebase 并没有真正处理数组,现在我不确定如何做到这一点。我想要空数组,所以当用户开始使用应用程序时,他们可以添加到他们的各种数组中。

有任何想法吗?

2个回答

Firebase 一直建议不要使用数组。我不会重复说明原因,而是将您引向博客文章最佳实践:Firebase 中的数组

但是你更大的问题似乎是有空数组: . 如果某个属性没有值,则 Firebase 数据库不会存储该属性。这意味着空数组不会存储在数据库中,因此不会读回。

读回数据后,您必须自己重新创建这些属性。如果您遇到此问题,请更新您的问题以显示您如何读取数据。

您不需要创建这些字段,它们使用第一项进行初始化,推荐的索引集合的方法是使用推送,然后将其映射到数组。