Ошибка: «Нет документа для обновления» в Firestore

#firebase #google-cloud-firestore

#firebase #google-облако-firestore

Вопрос:

Я использую cloudFirestore в качестве базы данных, и я хочу обновить поле, которое находится в документе.
коллекция: пользователи.
документ: пользователь.
поле: веб-сайт.

итак, для этого я сделал так :

 db.doc('/users/user').update({website:'user.com'});
  

но я получаю эту ошибку :

Нет документа для обновления: проекты / социальное приложение-12282/ базы данных / (по умолчанию) / документы / пользователи / пользователь ‘

Может кто-нибудь сказать мне, что это произошло, заранее спасибо

Редактировать:
здесь вы можете видеть, что у меня есть документ с именем user
введите описание изображения здесь

Комментарии:

1. В сообщении об ошибке говорится, что у вас нет документа с именем «/ users / user». Пожалуйста, отредактируйте вопрос, чтобы объяснить, почему вы считаете, что это утверждение об ошибке неверно.

Ответ №1:

Для обновления документа в Firestore структура обновления немного отличается от вашей. Согласно документации, доступной здесь, вам нужно выбрать коллекцию, а затем документ, который вы хотите обновить. Код будет примерно таким, как показано ниже:

 var usersRef = db.collection("users").doc("user");

// Set the "user" field of the city 'DC'
return usersRef.update({
    "website": "user.com"
})
.then(function() {
    console.log("Document successfully updated!");
})
.catch(function(error) {
    // The document probably doesn't exist.
    console.error("Error updating document: ", error);
});
  

Упрощенная версия будет:

 db.collection("users").doc("user").update({
    "website": "user.com"
})
.then(function() {
    console.log("Document successfully updated!");
});
  

Хотя это непроверенный код, я считаю, что он должен помочь вам понять, как обновить значения и в качестве отправной точки. Вы также можете получить больше примеров из официальной документации.

Комментарии:

1. это очень странно, снова та же ошибка, но поверьте мне, я создаю два документа с одинаковым именем, и в результате второй обновляется, а первый не обновляется!!

2. Итак, после использования этого кода один из документов обновляется, а другой нет? У них одинаковые имена? Если это так, это может быть причиной проблемы.

3. Нет, также я попытался обновить только один думент, но он не обновляется, все еще не работает.

4. и обратите внимание, что я сделал, когда пользователь регистрирует автоматически созданный документ, а поле, которое я пытаюсь обновить, не существует в документе, и, насколько я знаю, даже если оно не существует, оно будет создано!

5. Не могли бы вы попробовать заменить его update на set ? Если поле не существует, его необходимо создать, и set оно будет либо создано, если оно не существует, либо обновлено, если существует.