У меня есть простой вызов в Firestore, чтобы написать документ, а затем подождать, пока документ завершит запись, прежде чем менять состояние родителя.Тем не менее, родительское состояние изменяется слишком быстро, в результате чего поля чтения, которые, я думаю, еще не были записаны / распространены.Я попытался добавить задержку с помощью setTimeout, и она, кажется, игнорируется.Как я могу убедиться, что изменение состояния вызывается только после полной записи документа Firestore?
Код:
updateDBEntry(stateObj) {
var that = this;
var docRef = firebase.firestore().collection('sessions').doc(this.state.userID);
docRef.get().then((doc) => {
if (!doc.exists) {
const timestamp = firebase.firestore.FieldValue.serverTimestamp();
var duration = (stateObj.seshDuration) ? stateObj.seshDuration : 1;
docRef.set({
seshName: stateObj.seshName,
seshStreet: stateObj.seshStreet,
seshZipcode: stateObj.seshZipcode,
seshDuration: duration,
seshDesc: stateObj.seshDesc,
seshTime: timestamp,
}).then(() => {
var handleToUpdate = that.props.handleToUpdate;
setTimeout(() => {
handleToUpdate(1); //this changes the parent's state
}, 10000);
});
}
});
}