Firestore: установить поля неявно созданных документов - PullRequest
0 голосов
/ 01 марта 2019

Я строю систему группового чата с помощью Google Firestore.Для каждой группы я использую собственный идентификатор документа Firestore, чтобы определить комнату чата, которой принадлежат сообщения.Каждый раз, когда пользователь отправляет сообщение в комнату, этот фрагмент работает, даже если документ с таким идентификатором не существует, поскольку документы создаются неявно:

this._firestore
        .collection('rooms')
        .doc('group' + group.id)
        .collection('messages')
        .add({
            uid: message.from.id,
            content: message.content,
            date: firebase.firestore.FieldValue.serverTimestamp()
        })

Преимущество этого метода заключается в том, что документПредставляет, что чат не создан, пока один пользователь не отправит сообщение.Но как я могу сохранить время создания канала, не проверяя каждый раз при отправке сообщения, существует ли документ или у него есть свойство createdAt?Являются ли они каким-либо сигналом или событием, которое обнаруживает неявно созданные документы?

1 Ответ

0 голосов
/ 01 марта 2019

Ни один документ не был явно создан в предоставленном вами фрагменте.Если документ на верхнем уровне еще не существует, вы просто получите подколлекцию, в которой нет «родительского» документа.В консоли Firestore это указывается тем фактом, что идентификатор документа показан курсивом: идентификатор документа существует, но для него нет данных документа.

Вы могли бы создать облакоФункция, которая обнаруживает эту ситуацию и создает документ в коллекции верхнего уровня.Тогда вы также поместите значения по умолчанию в этот документ.

...