簡體   English   中英

獲取自動生成的 ID - Firebase

[英]Get the auto-generated id - Firebase

我正在嘗試使用.key檢索我插入到數據庫中的元素的 ID。 但是,它返回user值而不是自動生成的 id。

如何獲取自動生成的 id ?

var mainText = document.getElementById("main-text");
var emailText = document.getElementById("emailtxt");
var prenom = document.getElementById("prenomtxt");
var submitBtn = document.getElementById("submitBtn");
var heading = document.getElementById("heading");



var firebaseHeadingref = firebase.database().ref().child("titre");
firebaseHeadingref.on('value', function(datasnapchot){
  heading.innerText = datasnapchot.val();
})

function submitClick(){
  var firebaseref = firebase.database().ref();
  var messageText = mainText.value;
  var txtmail = emailText.value;
  var prenomtxt = prenom.value;


  if(messageText == "" || txtmail == "" || prenomtxt == ""){
   alert("Tous les champs doivent être remplis");
   return;
  }

 firebaseref.child("user").push().set({name : messageText, prenom:prenomtxt ,email : txtmail});



 var f = firebase.database().ref().child("user").orderByChild("email").equalTo(txtmail);


 // firebaseref.child("user").push({name: messageText, prenom:prenomtxt, email: txtmail}).then(pushed_user => {
 //
 // console.log(pushed_user.key);
 //
 // });

 f.on("value", function(datasnapchot){
  var id = datasnapchot.val();
  console.log(id);

 });

// location.reload();
}

日志 :

當您推送一個元素時,您可以直接檢索自動生成的 ID,而無需調用偵聽器。

firebaseref.child("user").push({name: messageText, prenom:prenomtxt, email: txtmail}).then(pushed_user => {

console.log(pushed_user.key);

});

您可以在此處找到另一個示例。

嘗試像函數一樣調用它:

var id = datasnapchot.key();

var newPostKey = firebaseref.child("user").push().set({name : messageText,prenom:prenomtxt ,email : txtmail}).key;

“newPostKey”將是你的鑰匙

請嘗試以下操作:

var ref = firebase.database().ref("users");

ref.push().on("value", function(snapshot) { snapshot.forEach(function(childSnapshot) {
var id = childSnapshot.key();
console.log(childSnapshot);
  });
});

您需要使用forEach循環,然后您將能夠使用key()檢索推送密鑰

這對我有用

var id = datasnapchot.key;

使用datasnaphot.key代替datasnaphot.key()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM