如果我想从客户端写入数据库,我可以注入一个AngularFirestore
示例,并使用createId()
自动生成一个id:
const individualId = this.angularFirestore.createId();
但是如果我想在云函数中使用Firestore管理API做同样的事情,我找不到等效的操作。
const db = admin.firestore();
但是,创建的对象没有可用的createId()
函数。
有没有可以在cloud函数中使用的createId()
的等价物?
2条答案
按热度按时间i1icjdpr1#
我从这个issue和这个article中理解到“
AngularFirestore.createId()
从名为'_'的符号集合中生成一个新的id”。如果你想在云函数中模拟这种行为,你可以使用
CollectionReference
的doc()
方法,而不指定任何路径。你将得到一个DocumentReference
,然后你可以使用id
属性来获取“引用文档的最后一个路径元素”。如下所示:
请注意,正如上面提到的问题中所解释的,“使用泛型集合而不是实际集合”来生成id有点奇怪,因为您通常会使用要在其中创建新Document的集合。(他是Firebaser),因为Firestore自动生成的ID“只是一个随机字符串,根本不考虑路径”。
igetnqfo2#
在JavaScript中,为新的Firebase 9(2022年1月)。在我的情况下,我正在开发一个评论部分:
用
doc()
Package 集合引用(commentsReference
)提供了一个标识符(id
)