Извините, я не в курсе, является ли это проблемой, или я не могу правильно ее использовать,
Проблема, с которой я сталкиваюсь, это ..
Я пытаюсь создать новый документ с определенными полями, с одним полем , созданным , проблема возникает, когда я пытаюсь получить вновь введенный документ с помощью прослушивателя onSnapshot ().
Слушатель onSnapshot () запускается дважды один раз с типом добавленным и сразу после этого с типом , модифицированным , просто потому, что значение firebase.firestore.FieldValue.serverTimestamp ( ) не вставляется одновременно.
Вот фрагмент кода для добавления документа
senderid : this.buddy.senderId,
receiverid: this.buddy.receiverId,
message : msg,
created: firebase.firestore.FieldValue.serverTimestamp()
А вот код для чтения документов:
this.db.collection(this.collectionName.friendsCollection).doc(this.buddy.docid)
.collection(this.collectionName.chatsCollection).orderBy('created')
.onSnapshot(snapshot=> {
skip.buddymessages = [];
if(snapshot.empty)
{
console.log("First Chat");
}
else{
console.log("size",snapshot.size)
snapshot.docChanges.forEach(change => {
if (change.type === 'added') {
console.log('New : ', change.doc.data());
}
if (change.type === 'modified') {
console.log('Modified : ', change.doc.data());
}
if (change.type === 'removed') {
console.log('Removed : ', change.doc.data());
}
});
Вот скриншот консоли: -