小编典典

在Firebase中使用push()时,如何获取唯一ID并将其存储在数据库中

reactjs

我正在将数据推送到Firebase中,但是我也想在数据库中存储唯一ID。有人可以告诉我,如何推送具有唯一ID的数据。

我正在尝试这样

  writeUserData() {
    var key= ref.push().key();
    var newData={
        id: key,
        websiteName: this.webname.value,
        username: this.username.value,
        password : this.password.value,
        websiteLink : this.weblink.value
    }
    firebase.database().ref().push(newData);
  }

错误是“ ReferenceError:引用未定义”


阅读 396

收藏
2020-07-22

共1个答案

小编典典

您可以使用key()任何ref对象的功能来获取密钥

push在Firebase的JavaScript SDK中有两种调用方法。

  1. 使用push(newObject)。这将生成一个新的推送ID,并将数据写入具有该ID的位置。

  2. 使用push()。这将生成一个新的推送ID,并返回对该ID的位置的引用。这是 纯客户端操作

知道#2,您可以轻松地通过以下方式获得新的推送ID客户端:

var newKey = ref.push().key();

然后,您可以在多位置更新中使用此密钥。

如果您在push()不带参数的情况下调用Firebase 方法,则它是纯客户端操作。

var newRef = ref.push(); // this does *not* call the server

然后,您可以将key()新ref的添加到您的商品中:

var newItem = {
    name: 'anauleau'
    id: newRef.key()
};

并将项目写入新位置:

newRef.set(newItem);

在您的情况下:

writeUserData() {
  var myRef = firebase.database().ref().push();
  var key = myRef.key();

  var newData={
      id: key,
      Website_Name: this.web_name.value,
      Username: this.username.value,
      Password : this.password.value,
      website_link : this.web_link.value
   }

   myRef.push(newData);

}
2020-07-22