首页 > 解决方案 > 是否可以获取 Firebase Cloud Firestore 数据库中可用的集合的文档 ID?

问题描述

在此处输入图像描述

我想在城市集合中获取社会集合的文档 ID,但我的代码在城市集合的 socialId 字段中返回不同的 ID。

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);
});

标签: javascriptfirebasegoogle-cloud-firestore

解决方案


您将获得另一个societyIdid ,这与通过简单调用函数生成的 id 不同,因为您正在使用 CollectionReference 的add()doc()函数将对象添加到数据库:

使用指定的数据向此集合添加一个新文档,并自动为其分配一个文档 ID。

而不是使用 DocumentReference 的set()函数:

写入此 DocumentReference 引用的文档。如果该文档尚不存在,则会创建该文档。如果您传递选项,则可以将提供的数据合并到现有文档中。

根据您的评论,如果您想拥有相同的 id,请更改以下代码行:

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

this.cityList = firebase.firestore().collection("cities").doc(this.myId).set(/* ... */);

推荐阅读