web-dev-qa-db-fra.com

Dans Firebase avec Push (), comment obtenir l'ID unique et le stocker dans ma base de données

Je pousse des données dans firebase, mais je veux stocker un identifiant unique dans ma base de données également .quelqu'un peut-il me dire comment pousser les données avec un id unique.

j'essaye comme ça

  writeUserData() {

    var key= ref.Push().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
    }

    firebase.database().ref().Push(newData);


   }

erreur est "ReferenceError: la référence n'est pas définie"

27

Vous pouvez obtenir la clé en utilisant la fonction key() de n'importe quel objet de référence.

Il existe deux manières d’appeler Push dans le SDK JavaScript de Firebase. 

  1. en utilisant Push(newObject). Cela générera un nouvel identifiant Push et écrira les données à l'emplacement portant cet identifiant.

  2. en utilisant Push(). Cela générera un nouvel identifiant Push et renverra une référence à l'emplacement portant cet identifiant. C’est un pur côté client opération.

Connaissant le n ° 2, vous pouvez facilement obtenir un nouveau côté client avec l'identifiant Push avec:

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

Vous pouvez ensuite utiliser cette clé dans votre mise à jour multi-emplacement.

https://stackoverflow.com/a/36774761/2305342

Si vous appelez la méthode Firebase Push() sans argument, il s'agit d'un opération pur côté client.

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

Vous pouvez ensuite ajouter la key() de la nouvelle référence à votre article:

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

Et écrivez l'article au nouvel emplacement:

newRef.set(newItem);

https://stackoverflow.com/a/34437786/2305342

dans ton cas :

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

}
45
iOSGeek

Sauvegarde de données Firebase v3

function writeNewPost(uid, username, picture, title, body) {
  // A post entry.
  var postData = {
    author: username,
    uid: uid,
    body: body,
    title: title,
    starCount: 0,
    authorPic: picture
  };

  // Get a key for a new Post.
  var newPostKey = firebase.database().ref().child('posts').Push().key;

  // Write the new post's data simultaneously in the posts list and the user's post list.
  var updates = {};
  updates['/posts/' + newPostKey] = postData;
  updates['/user-posts/' + uid + '/' + newPostKey] = postData;

  return firebase.database().ref().update(updates);
}
24
Ron Royston

Vous pouvez obtenir le dernier identifiant d'article inséré en utilisant Promise comme ceci

let postRef = firebase.database().ref('/post');
postRef.Push({ 'name': 'Test Value' })
    .then(res => {
        console.log(res.getKey()) // this will return you ID
    })
    .catch(error => console.log(error));
2
Azam Alvi

Il semble que maintenant. Push () retourne toujours un observable. Lorsqu’on a appliqué les solutions ci-dessus, j’ai eu l’erreur suivante: "Le type 'String' n’a pas de signature d’appel compatible".

Cela étant dit, je me réfère à ce qui a fonctionné dans mon cas pour cette nouvelle version:

Le type 'String' n'a pas de signature d'appel compatible

0
Roger Almeida Leite

Cela a fonctionné pour moi:

 var insertData = firebase.database().ref().Push(newData);
 var insertedKey = insertData.getKey(); // last inserted key

Voir ici: Enregistrement de données avec Firebase.

0
Manohar Khadka