Можно ли получить идентификатор документа коллекций, доступных в базе данных Firebase Cloud Firestore? - PullRequest
0 голосов
/ 14 ноября 2018

enter image description here

Я хочу получить идентификатор документа коллекции обществ в коллекции городов, но мой код возвращает другой идентификатор в поле societyId коллекции городов.

myId: string = "";
private docRef: firebase.firestore.DocumentReference;
this.docRef = firebase.firestore().collection("societies").doc();
this.myId = this.docRef.id;
this.cityList = firebase.firestore().collection("cities").add({
    cityName: this.city,
   societyId: this.myId
}).then((doc) => {
  console.log(doc);
}).catch((err) => {
  console.log(err);
});

1 Ответ

0 голосов
/ 14 ноября 2018

Вы получаете другую societyId, которая отличается от идентификатора, который генерируется простым вызовом функции doc(), поскольку вы добавляете объект в базу данных с помощью функции add () CollectionReference:

Добавляет новый документ в эту коллекцию с указанными данными, автоматически присваивая ему идентификатор документа.

Вместо использования функции set () DocumentReference:

Записывает в документ, на который ссылается данный DocumentReference.Если документ еще не существует, он будет создан.Если вы передадите параметры, предоставленные данные могут быть объединены в существующий документ.

Согласно вашему комментарию, если вы хотите иметь тот же идентификатор, измените следующую строку кода:

this.cityList = firebase.firestore().collection("cities").add(/* ... */);

до

this.cityList = firebase.firestore().collection("cities").doc(this.myId).set(/* ... */);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...