Создание или обновление Firebase в Cloud Firestore - PullRequest
0 голосов
/ 24 октября 2018

Я занимаюсь разработкой простого приложения, и у меня есть единственное сомнение в Firebase Cloud Firestore.

Когда мы делаем db.doc('docname').set(myInfo) в коде, Firebase рассматривает его как создание или обновление?

Ответы [ 2 ]

0 голосов
/ 25 октября 2018

Если вы просто используете функцию set(), это означает, что если документ не существует, он будет создан.Это означает, что вам будет выставлен счет за операцию записи.Если документ существует, его содержимое будет перезаписано вновь предоставленными данными, если только вы не укажете, что данные должны быть объединены в существующий документ, следующим образом:

var setWithMerge = yourDocRef.set({
  yourProperty: "NewValue"
}, { merge: true });

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

return yourDocRef.update({
    yourProperty: "NewValue"
})
.then(function() {
    console.log("Document successfully updated!");
})
.catch(function(error) {
    console.error("Error updating document: ", error);
});

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

0 голосов
/ 24 октября 2018

Set равен созданию нового документа:

// Add a new document in collection "cities"
db.collection("cities").doc("LA").set({
    name: "Los Angeles",
    state: "CA",
    country: "USA"
})

Создаст вам новый документ с именем LA со свойствами ниже.Или, если вы не хотите указывать идентификатор и хотите, чтобы Firestore установил для вас автоматический уникальный идентификатор:

db.collection("cities").add({
    name: "Tokyo",
    country: "Japan"
})

Обновление имеет собственную функцию в Firestore:

// To update age and favorite color:
db.collection("users").doc("frank").update({
    "age": 13,
    "favorites.color": "Red"
})

Больше примеров и объяснений

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...