javascript - Firebase - 无法嵌套集合的集合

标签 javascript firebase react-native google-cloud-firestore

在我的 React Native 项目中,我使用 Firestore 作为我的数据库。每当用户注册时,我都想创建一个主管批准请求。

基本上在 supervisorRequests 的集合下,每个 supervisor 应该有一个文档,以主管的 key 命名。在主管文档下,我想要一组随机生成的 id,每个 id 都包含请求元数据。这是我想要的结构:

-supervisorRequests
      -supervisor-1-Key
           -random-id-of-request
              - user: userID
              - userEmail: userEmail
              - requestDate: timestamp
           -random-id-of-request
              - user: userID
              - userEmail: userEmail
              - requestDate: timestamp
      -supervisor-2-Key
           -random-id-of-request
              - user: userID
              - userEmail: userEmail
              - requestDate: timestamp
           -random-id-of-request
              - user: userID
              - userEmail: userEmail
              - requestDate: timestamp
           -random-id-of-request
              - user: userID
              - userEmail: userEmail
              - requestDate: timestamp

我试图实现这一点的代码是:

const docReference = firebase.firestore().collection(`supervisorRequests`).doc(this.props.supervisorKey);
docReference.set({ user: this.props.userUID, requestDate: new Date().getTime(), userEmail: this.props.email });

但是,我的代码生成以下结构:

-supervisorRequests
      -supervisor-1-Key
          - user: userID
          - userEmail: userEmail
          - requestDate: timestamp

这不是我想要的,因为每次向主管的 key 发出新请求时,旧请求都会被覆盖。

我的代码会有什么问题,我怎样才能实现我提出的第一个数据库结构?

最佳答案

您传递给 collection() 的字符串必须是集合的路径。您现在传递的是文档的路径。它通过查看字符串中的正斜杠来辨别这一点。也许您想像这样引用文档:

firebase.firestore()
        .collection('supervisorRequests')
        .doc(this.props.supervisorKey)

您可以使用返回的 DocumentReference 通过其 set() 方法创建文档。

关于javascript - Firebase - 无法嵌套集合的集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55505069/

相关文章:

Android - FirebaseMessaging - FirebaseInstanceId:后台同步失败 : MISSING_INSTANCEID_SERVICE

react-native - 由于错误 "error: uncompiled PNG file passed as argument. Must be compiled first into .flat file.."无法生成 apk

javascript - 如何处理 reducer 中的异步 promise

javascript - 如何在 React Native 中使用数组对象迭代数组

javascript - Google 地方信息 HTML/Javascript 列表

javascript - 在 Drupal 8 中需要选择框

javascript - 我如何在 node.js 中使用 promises 来清理回调链?

javascript - AngularJS 单元测试中找不到模块错误

android - onSuccessListener中文件上传成功时如何返回 bool 值?

angularjs - 在 AngularFire 中使用限制