有没有办法预取自动生成的密钥 .push() 将在 Firebase 实时数据库中生成?

我想为我在实时数据库中存储的一些对象创建一个唯一的 id,但我希望该 id 位于对象本身中。有没有两种方法可以在没有 3 停止过程的情况下做到这一点,例如推送对象,读取密钥,使用密钥更新数据库的 id 字段?

换句话说,如果我想让我的数据库看起来像这样:

properties: 
 -Mfq1Ek2geCnkol7EbeW: 
     id: "-Mfq1Ek2geCnkol7EbeW" 
     buyer: "ab3s3aga"
     seller: "b3skela" 
-Mq1Em5a3skfjal3EjkVDMN:  
     id:  "-Mq1Em5a3skfjal3EjkVDMN"
     buyer: "zk39xlal"
     seller:  "34kzla99dl"

有没有办法做到这一点而不必向数据库写入两次?

xinsuandeluoba 回答:有没有办法预取自动生成的密钥 .push() 将在 Firebase 实时数据库中生成?

当您不带参数调用 push() 时,它是一个纯粹的客户端操作,会生成一个新的 DatabaseReference 对象。您可以从这个新对象中获取 key

因此(在 JavaScript 中)您可以通过以下方式获取新密钥:

let newKey = ref.push().key;

或者你可以像这样保留引用和密钥:

let newRef = ref.push();
let newKey = newRef.key;

然后使用以下命令为新引用设置一个值:

newRef.set(...);
本文链接:https://www.f2er.com/756.html

大家都在问