Получите доступ к генератору идентификатора Firestore на внешнем интерфейсе - PullRequest
0 голосов
/ 13 июня 2019

Я хочу установить свои идентификаторы документов во внешнем интерфейсе, в то же время я set документ, поэтому мне было интересно, есть ли способ генерировать идентификаторы Firestore, которые могут выглядеть следующим образом:

const theID = firebase.firestore().generateID() // something like this

firebase.firestore().collection('posts').doc(theID).set({
    id: theID,
    ...otherData
})

Я мог бы использовать uuid или какой-либо другой пакет генератора идентификаторов, но я ищу генератор идентификаторов Firestore. Этот SO-ответ указывает на какой-то метод newId , но я не могу найти его в JS SDK ... (https://www.npmjs.com/package/firebase)

1 Ответ

0 голосов
/ 13 июня 2019

Хотите добавить новый документ с уникальным идентификатором?

См. https://firebase.google.com/docs/firestore/manage-data/add-data#add_a_document.

иногда нет значимого идентификатора для документа, и более удобно позволить Cloud Firestore автоматически генерировать идентификатор для вас. Вы можете сделать это, вызвав add ()

В некоторых случаях может быть полезно создать ссылку на документ с автоматически сгенерированным идентификатором, а затем использовать ссылку позже. Для этого варианта использования вы можете вызвать doc ()

За кулисами .add (...) и .doc (). Set (...) полностью эквивалентны, так что вы можете использовать любой более удобный.

добавить ()

    // Add a new document with a generated id.
    db.collection("cities").add({
        name: "Tokyo",
        country: "Japan"
    })
    .then(function(docRef) {
        console.log("Document written with ID: ", docRef.id);
    })
    .catch(function(error) {
        console.error("Error adding document: ", error);
    });test.firestore.js

документ ()

    // Add a new document with a generated id.
    var newCityRef = db.collection("cities").doc();
    // later...
    newCityRef.set(data);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...