Firebase Firestore:在集合中创建集合

KAY*_*ORK 2 firebase typescript google-cloud-platform google-cloud-firestore react-native-firebase

如何在集合中创建集合,如下所示:

    firestore().collection('users').doc(user.uid).collection("account").doc('doc-account').set({...});
Run Code Online (Sandbox Code Playgroud)

怎么做 ?

Ren*_*nec 6

您的问题是关于如何在名为 的根集合下创建名为的子集合accountusers

您只需要完全按照您在问题中所示的方式进行操作,使用set()上的方法doc-account DocumentReference:一旦第一个文档添加到account子集合下,该子集合就会存在。

如果add()在子集合上使用该方法account,效果相同,如下所示:

firestore().collection('users').doc(user.uid).collection("account").add({...});
Run Code Online (Sandbox Code Playgroud)

你甚至不需要有一个users集合,即集合中有一个文档users。最后一点乍一看有点令人惊讶,让我们用一个例子来解释一下:

取集合doc1下的一个文档col1

col1/doc1/
Run Code Online (Sandbox Code Playgroud)

以及(子)集合subDoc1下的另一个subCol1

col1/doc1/subCol1/subDoc1
Run Code Online (Sandbox Code Playgroud)

实际上,从技术角度来看,这两份文件彼此没有任何关系。他们只是分享自己道路的一部分,除此之外别无其他。这就是为什么subDoc1文档(及其父subCol1集合)可以在没有现有的情况下存在doc1。这样做的一个显着副作用是,如果删除文档,其子集合仍然存在。