SID*_*NEY 2 javascript firebase google-cloud-firestore
我想将用户信息与其 id(而不是文档 id)一起存储在文档中。我想生成像 XYZ0001 这样的 id 特定格式,每当新用户添加时,最后 4 位数字将自动增加。例如,XYZ0001、XYZ0002 之类的。我试过这个...
return firestore
.collection("xyzData")
.doc(resp.user.uid)
.set({
firstName: newUser.firstName,
lastName: newUser.lastName,
email: newUser.email,
ca_id: "XYZ" + pad(firestore.collection("xyzData").count())
})
.then
Run Code Online (Sandbox Code Playgroud)
其中 pad() 是一个函数,它给我最后 4 位数字
function pad(n) {
var s = "000" + n;
return s.substr(s.length - 4);
}
Run Code Online (Sandbox Code Playgroud)
但这给了我一个错误,即 count() 不是函数
另外,我正在考虑另一种方法,我可以读取最后一个 id 的值,然后为下一个用户将其增加 1,但 bust 将无法实现它。
请注意,没有count()用于 a 的方法CollectionReference。如果您想知道集合中的文档数,您需要调用异步 get()方法来获取 aQuerySnapshot然后使用该size属性。但是,您不能将调用get()作为对象的属性传递。
解决方案是维护您自己的计数器。
有两种标准方法:
firebase.firestore.FieldValue.increment()如文档中所述,您可以调用firebase.firestore.FieldValue.increment()以增加 Firestore 文档的特定字段。例如,您可以在counterCollection 中有一个文档,每次您想从序列中获取新值时,您都会递增和读取该文档。根据您的具体用例,您可能需要使用Transaction.
另请注意“您每秒只能更新单个文档一次”。
如果您需要每秒多次更新您的计数器文档,您应该使用分布式计数器,如文档中所述。
| 归档时间: |
|
| 查看次数: |
863 次 |
| 最近记录: |