Как добавить автоматически сгенерированный идентификатор c в облачную базу данных Firestore - PullRequest
1 голос
/ 26 февраля 2020

Это моя карта ha sh, она не добавляет фактически сгенерированный идентификатор

    val user = hashMapOf(
        "deviceToker" to " ",
        "dob" to date.text.toString(),
        "email" to email_reg.text.toString(),
        "id" to db.collection("patients").document().id,
        "name" to name.text.toString()
    )

Ответы [ 2 ]

2 голосов
/ 26 февраля 2020

Если вы хотите добавить случайно сгенерированный идентификатор документа к содержимому самого документа, сначала просто наберите document() без параметров, чтобы получить ссылку на документ, который еще не существует:

val ref = db.collection("patients").document()

Затем используйте эту ссылку для добавления идентификатора к содержанию документа:

val user = hashMapOf(
    "deviceToker" to " ",
    "dob" to date.text.toString(),
    "email" to email_reg.text.toString(),
    "id" to ref.id,   // note the use of ref.id here to get the random id
    "name" to name.text.toString()
)

Теперь добавьте документ, используя ту же ссылку:

ref.set(user)  // be sure to check for errors

Как вы можете видеть , идентификатор генерируется на клиенте, а не на сервере.

0 голосов
/ 26 февраля 2020

Я думаю, что вы используете неправильную процедуру. Из документов:

// Add a new document with a generated id.
val newCityRef = db.collection("cities").doc();

// later...
newCityRef.set(data);

Итак, как я go об этом:

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