获取自动生成的ID-Firebase

时间:2019-03-21 16:42:50

标签: javascript firebase firebase-realtime-database

我正在尝试使用.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();
}

log :

5 个答案:

答案 0 :(得分:0)

尝试像函数一样调用它:

var id = datasnapchot.key();

答案 1 :(得分:0)

当您推送一个元素时,您可以直接检索自动生成的ID,而无需调用侦听器。

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

console.log(pushed_user.key);

});

您可以找到另一个示例here

答案 2 :(得分:0)

public async Task LoginTest() { // Arrange var formData = new Dictionary<string, string> { { "Email", "email_2_test@mail.com" }, { "Password", "1234567" } }; // Act var response = await _client.PostAsync("/Account/Login", new FormUrlEncodedContent(formData)); var actualSessionValue = HttpContext.Session.GetInt32("ProfileUser"); // This not work Assert.Equal(3212, actualSessionValue) Assert.Equal(HttpStatusCode.Found, response.StatusCode); Assert.Equal("/DashboardAdmin", response.Headers.Location.ToString()); }

“ newPostKey”将作为您的密钥

答案 3 :(得分:0)

尝试以下操作:

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()来检索按键

答案 4 :(得分:0)

这对我有用

var id = datasnapchot.key;

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