Firebase - добавить документ с несоответствием идентификатора? - PullRequest
0 голосов
/ 18 марта 2019

Посмотрел несколько постов об этом, но я не получил результаты, на которые надеялся. План: передать идентификатор документа в качестве поля.

const ref = db.collection('mycollection').doc();
console.log(ref.id);
db.collection('mycollection').add({
    id: ref.id,
    name: req.body.name
})
.then(docRef => {
    console.log("Document written with ID: ", docRef.id);
})

Когда я запускаю это (firebase serve и отправляю данные через почтальона), ref.id и docRef.id не совпадают, например:

zR5nJ348OpbwHcyGoojC
info: Document written with ID:  Fh2mqfZKpizzW5RIJ0yF

Я ожидал, что они совпадут - это неправильно с моей стороны?

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

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

Спасибо

1 Ответ

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

Каждый раз, когда вы звоните doc() (без аргументов) или add(...), Firestore создает новый идентификатор документа.Поскольку вы вызываете оба кода в своем коде, вы получаете два отдельных идентификатора.Хитрость заключается в том, чтобы звонить только один или другой, как:

const ref = db.collection('mycollection').doc();
ref.set({
    id: ref.id,
    name: req.body.name
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...