簡體   English   中英

Firebase - 無法嵌套集合集合

[英]Firebase - unable to nest a collection of collection

在我的 React Native 項目中,我使用 Firestore 作為我的數據庫。 每當用戶注冊時,我都想創建一個主管批准請求。

基本上,在supervisorRequests的集合下,應該有每個supervisor的文檔,以主管的密鑰命名。 在主管文檔下,我希望有一組隨機生成的 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

這不是我想要的,因為每次向主管的密鑰發出新請求時,舊請求都會被覆蓋。

我的代碼有什么問題,我怎樣才能實現我提出的第一個數據庫結構?

您傳遞給 collection() 的字符串必須是集合的路徑。 您現在傳遞的是文檔的路徑。 它通過查看字符串中的正斜杠來識別這一點。 也許您想像這樣引用文檔:

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

您可以使用返回的 DocumentReference 通過其 set() 方法創建文檔。

只是為了完成 Doug 的回答,請注意,您可以直接將“斜線分隔的路徑”傳遞給doc()方法,以獲取“引用指定路徑處的文檔的DocumentReference實例”。

所以你也可以這樣做:

firebase.firestore().doc(`supervisorRequests/${this.props.supervisorKey}`).set();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM