Получить автоматически сгенерированный идентификатор - Firebase - PullRequest
0 голосов
/ 21 марта 2019

Я пытаюсь получить идентификатор элемента, который я вставил в базу данных с помощью .key. Однако он возвращает значение user вместо автоматически сгенерированного идентификатора.

Как я могу получить автоматически сгенерированный идентификатор?

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 :

Ответы [ 4 ]

0 голосов
/ 22 марта 2019

Попробуйте выполнить следующее:

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()

0 голосов
/ 21 марта 2019

Когда вы нажимаете элемент, вы можете напрямую получить автоматически сгенерированный идентификатор, не вызывая слушателя.

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

console.log(pushed_user.key);

});

Вы можете найти другой пример здесь .

0 голосов
/ 21 марта 2019

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

"newPostKey" будет вашим ключом

0 голосов
/ 21 марта 2019

Попробуйте вызвать его как функцию:

var id = datasnapchot.key();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...