2017-11-28 32 views
1
├── users ----------------------------------------------- collection 
│   ├── u1 ---------------------------------------------- document 
│   │   ├── displayName: "John Smith" 
│   │   ├── email: "public" 
│   │   ├── photoURL: "xxx.png" 
│ │ │ 
│   |   └── chatChannels -------------------------------- subcollection 
│   |    └── c1 
| |   ├── channelId: "c1" 
| |   ├── joinedAt : 12/12/2017 
│   │   ``` 
| 
├── converstations -------------------------------------- collection 
│   ├── c1  --------------------------------------------- document  
│   |   ├── channelName: "Channel 1" 
│   |   ├── channelType: "public" 
│   |   ├── channelIcon: "channel.png" 
│   |   │   
│   |   ├── members ------------------------------------- subcollection 
│   |   | ├── u1 
│   | | | ├── userId: "u1" 
| | | |  
| | |  
| | ├── messages ------------------------------------ subcollection 
│   |    ├── m1 
│   |   ├── from: "u1" 
| |   ├── message: "hello" 
| |   ├── timestamp: 12/12/2017 00:09 PM 

これは、私がfirestoreで構築しているチャットアプリケーションの構造です。ドキュメントからサブコレクションを削除するだけの問題があります。Firestore:サブコレクションが存在するかどうかを確認する最善の方法は?

  1. 文書を削除します。
  2. サブコレクションが存在する場合は、サブコレクションを削除します。たとえば、

私は"Channel 1"を削除した場合、それはまた、すべてのサブコレクション(membersmessages)を削除する必要があります。

私はちょうど プロジェクト全体で共通のプロバイダを作りたいので、私は彼らの名前を知らないとしましょう。それ以外の場合は、手動で作成することもできます。batch operations

+2

あなたは何かを考え出しましたか?非常に似たようなことが必要です。コレクションを削除し、このコレクションに他のサブコレクションがあるかどうかをチェックして、再帰を使用してすべてを削除できるようにしたいと考えています。 –

+0

私はまだできませんでした。 – sdey0081

答えて

0

再帰的削除はクライアントライブラリに組み込まれていません。再帰的に文書を削除する必要がある場合は、Firebase consoleまたはFirebase cliを使用してください。

関連する問題