Ваш add
работает, потому что вы создаете новый документ в этой коллекции. С другой стороны, когда вы пытаетесь update
, вы должны указать, какой конкретный документ вы хотите обновить ... обновление collection
не имеет смысла, вы должны нацеливаться на document
.
Обратите внимание на разницу в примерах, приведенных в официальных документах для создания нового документа в коллекции с помощью add
:
// Add a new document with a generated id.
db.collection("cities").add({
name: "Tokyo",
country: "Japan"
})
против примера обновления определенного документа:
// Set the "capital" field of the city 'DC'
db.collection("cities").doc("DC").update({
capital: true
})
Обратите внимание, как update
нацелен на конкретный документ? Это то, что вам нужно сделать. Я настоятельно рекомендую вам просмотреть официальные документы , чтобы найти больше примеров, они довольно полезны.
EDIT:
Чтобы отредактировать документ, вам нужно знать его имя ... вы можете запросить коллекцию, чтобы узнать имя, или вы можете использовать следующий метод добавления нового документа, где вы можете установить имя самостоятельно. В этом примере они создают новый документ «LA» со свойствами name, state и country:
db.collection("cities").doc("LA").set({
name: "Los Angeles",
state: "CA",
country: "USA"
})
Таким образом, вы знаете название вашего документа. Используя синтаксис add
, Firebase автоматически сгенерирует имя нового документа.