Обновить запрос с использованием Firestore в react native

#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, если он не существует, или перезапишет его.