【问题标题】:How to create document Id for firestore documents using adminSdk in Firebase cloud functions?如何在 Firebase 云功能中使用 adminSdk 为 Firestore 文档创建文档 ID?
【发布时间】:2019-12-03 00:53:07
【问题描述】:

如何在 Firebase 云功能中使用 Firebase Admin SDK 为 Firestore 文档创建文档推送 ID。

我知道如何使用 AngularFire2 在 Angular 中做到这一点

const bookingId = this.afs.createId();

我需要在我的云功能中执行此操作。

【问题讨论】:

    标签: node.js firebase google-cloud-firestore google-cloud-functions firebase-admin


    【解决方案1】:

    只需调用 doc(),在您希望文档所在的 CollectionReference 上不带任何参数。然后,您可以在返回的 DocumentReference 上调用 set() 来创建文档。

    如果您甚至不需要创建文档而只需要随机 ID,请使用 DocumentReference 上的 id 属性。

    (实时数据库将这些东西称为“推送 ID”,因为您使用了 push() 方法,但它们在 Firestore 中仅称为自动生成的 ID)。

    【讨论】:

    • 如果我们需要在创建条目后立即访问 id 怎么办?响应对象没有为我包括它。
    • @DevMike 阅读 doc() 方法的链接文档。它返回一个 DocumentReference,其中包含在 set() 之后将创建的文档的 ID。
    • 链接googleapis.dev/nodejs/firestore/latest/… 令人困惑?它引用了.doc().add(),但我看到的通过管理SDK 可用的唯一选项是doc().set doc().createdoc().update,这三个选项都没有回复我正在查看的文档参考:googleapis.dev/nodejs/firestore/latest/CollectionReference.html
    • 例如,这是我通过管理 SDK 从doc().set 看到的响应:WriteResult { _writeTime: Timestamp { _seconds: 1574284714, _nanoseconds: 711962000 } }
    • 啊!好的,我想通了:我正在调用 admin.firestore().collection('collectionName').doc(),而我需要创建对集合的引用,然后在引用上调用 add()。道歉,还在学习,很困惑。
    猜你喜欢
    • 2018-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-07
    • 2022-01-24
    • 2018-10-04
    • 2021-02-13
    • 2022-01-21
    相关资源
    最近更新 更多