#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
оно будет либо создано, если оно не существует, либо обновлено, если существует.