#react-native #google-cloud-firestore
#react-native #google-облако-firestore
Вопрос:
Я хочу подготовить и обновить запрос с помощью Firestore. я знаю, как с ним работать, но не полностью.
У меня есть плоский список, в котором представлены данные и текст с осязаемой непрозрачностью при нажатии, который создаст новую коллекцию Firestore и установит для FlatList значение Firestore.
Какова моя цель?: 1. Я хочу проверить, есть ли какие-либо данные в коллекции, если есть данные, я хочу обновить их, не перезаписывая предыдущие данные в зависимости от текущего идентификатора пользователя.
Мой текущий код запроса:
const handleFBAll = () => {
// const businessUser = snapshot.docs[0].data();
const businessIde = currentBusinessUid;
console.log("ID : ", businessIde);
firebase.firestore().collection("users").doc(businessIde).collection("pending-sales").doc(currentUser.uid).set({servicesMaxMin})
}
теперь я хочу обновить документ CurrentUser дополнительными данными, если таковые имеются
Предложения?
Комментарии:
1. используйте
update
вместоset
2. Это все? нет необходимости выполнять предварительные проверки и т. Д.?
3. правильно, просто предоставьте ему данные, которые вы хотите обновить, они будут объединены с существующими данными. если какие-либо предоставленные вами реквизиты уже существуют, они будут перезаписаны.
4. Хорошо, я пытаюсь сделать это прямо сейчас
5. На самом деле у меня ошибка, если я изменю его на update до того, как у меня появится существующий документ, я получу сообщение: «Ошибка FirebaseError: нет документа для обновления» Моя цель — сначала создать документ с данными, а затем на более поздних этапах подготовить обновление, если это необходимо
Ответ №1:
Вы можете использовать merge
prop с set
и это должно позволить вам немного упростить код примерно так:
db.collection('dogs').doc('my-id').set({
"owner": "james"
},{merge:true})
это добавит owner
prop, если он не существует, или перезапишет его.