Как обновить документ в FireStore? - PullRequest
0 голосов
/ 21 марта 2019

Я прочитал пост о том, как обновить документ в firebase, но у меня это не работает. Пользователь имеет возможность добавить документ в свою базу данных, и он должен иметь возможность обновить эту запись. Вот мой код сейчас ...

const form = document.querySelector('#database');

form.addEventListener('submit', (e) => {
    e.preventDefault();
    db.collection('database').add({
        field1: form.field1.value,
        field2: form.field2.value 
    });
    db.collection('database').update({
        field2: form.field2.value
    });
})

1 Ответ

1 голос
/ 21 марта 2019

Ваш 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 автоматически сгенерирует имя нового документа.

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