Этот код работает для обновления всех записей в MyCollection (MyBleeding) в firestore, которые имеют selectedDate, а не те, которые имеют «-». Я хочу обновить только те, которые имеют "-". Некоторые даты имеют «-», а другие имеют, например, «2020-03-29». Когда я использую этот код, он обновляет все даты до текущей, если у них есть другая дата или «-». Почему не выполняется запрос условия с помощью .where, а затем обновляются только те из них, которые соответствуют этому условию? структура базы данных firestore с "-" структура базы данных firestore с датой
onPress() {
this.setState({
isLoading: true,
});
const userId = firebase.auth().currentUser.uid;
const updateRef = firebase.firestore()
.collection('users')
.doc(userId)
.collection('MyBleeding')
.where('selectedDate', '==', '-');
updateRef.get().then(function (querySnapshot) {
querySnapshot.forEach(function (doc) {
if (doc.exists) {
let newRef = updateRef.doc(doc.id);
return newRef.update({
selectedDate: new Date().toLocaleDateString()
});
} else {
console.log("No such document!");
}
});
})
}
Заранее спасибо!
ОБНОВЛЕНИЕ: на основе исправления от @EmilGi, правильный код, который работает сейчас:
onEndPress() {
this.setState({
isLoading: true,
});
const userId = firebase.auth().currentUser.uid;
const updateRef = firebase.firestore()
.collection('users')
.doc(userId)
.collection('MyBleeding')
.where('selectedDate', '==', '-');
updateRef.get().then(function (querySnapshot) {
querySnapshot.forEach(function (doc) {
if (doc.exists) {
let newRef = firebase.firestore()
.collection('users')
.doc(userId)
.collection('MyBleeding')
.doc(doc.id);
return newRef.update({
selectedDate: new Date().toLocaleDateString()
});
} else {
console.log("No such document!");
}
})
.then((docRef) => {
this.setState({
selectedDate: '',
isLoading: false,
});
})
.catch((error) => {
console.error("Error adding document: ", error);
this.setState({
isLoading: false,
});
});
})
}