Документ / подколлекция Firestore не существует - PullRequest
0 голосов
/ 08 ноября 2018

У меня есть такая структура БД:

Firestore-root
|
--- sites (collection)
|     |
|     --- common (document)
|            |
|            --- //templates (collection)
|            |
|            --- //menus (collection)
|            |
|            --- //articles (collection) <----
|     --- other (document)
|            |
|            --- //articles (collection)

Когда я пытаюсь добавить статьи в БД (показано стрелкой), «общий» и «другой» документ выделен курсивом и поэтому нене существует.

Мой код, когда я пытаюсь добавить: приоритет является общим, тип статьи.

def documentReference = firestoreClient.databaseReference.collection(siteName).document(priority).collection(TYPE).document(key)
documentReference.set(article)

это консоль: firestore console image

Isэто плохой способ структурировать мою базу данных или есть быстрое исправление?

Сначала я попытался создать вложенные коллекции, но безуспешно!

1 Ответ

0 голосов
/ 08 ноября 2018

Консоль Firebase не указывает, что «общие» и «другие» документы удалены. Он говорит вам, что просто существует , а не . Эти документы не существуют, потому что вы их вообще не создавали. То, что вы сделали, было только , чтобы создать вложенную коллекцию под документом, который никогда прежде не существовал. Другими словами, он просто «резервирует» идентификатор документа в этой коллекции, а затем создает под ним коллекцию. Как правило, вы должны создавать только подколлекции документов, которые на самом деле do существуют, но так выглядит, когда документ не существует.

Следует помнить одну вещь: в Cloud Firestore документы и вложенные коллекции не работают как файлы и каталоги файловой системы. Если вы создаете вложенную коллекцию под документом, она не подразумевает создание каких-либо родительских документов. Подколлекции никак не связаны с родительским документом.

Идентификаторы документов, выделенные курсивом, не обязательно «удаляются». Они показаны таким образом, потому что документ не существует. Другими словами, в этом месте нет физического документа , но есть другие данные под этим местоположением.

Если вы хотите исправить это, вы должны написать хотя бы свойство, которое может содержать значение.

P.S. В Firestore, если вы удаляете документ, его вложенные коллекции все еще существуют.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...