2016-11-04 8 views
0

私はFirebaseを初めて使い、ToDoアプリケーションの作成を練習しました。今のところ、これは私のコードです:Firebaseが新しいユニークIDを設定しました

コード:

var getUserRef = firebase.database().ref('users'); 

getUserRef.on('child_added', function(data) { 
    var name = data.child("name").val(); 
    var email = data.child("email").val(); 
    $('#loadData').append(`<tr><td>${name}</td><td>${email}</td><td>Edit Remove</td></tr>`); 
}); 

function addUser() { 
    var database = firebase.database(); 
    var name = $('#name').val(); 
    var email = $('#email').val(); 
    var newID = 4; // How can this be incremented? 
    database.ref('users/' + newID).set({ 
     name: name, 
     email: email 
    }); 
} 

データ構造:あなたが見ることができるように

enter image description here

は、毎回私は私は、新しいユーザーを作成変数newIDを手動で変更します。

私の問題は、新しいユーザーを挿入するたびに変更したくないということです。私はaumoticallyインクリメントまたはランダムな一意のIDを生成します。

Googleのfirebaseでこれを行う方法はありますか?

答えて

0

ここにはアイテムのリストがあります。このようなリストがある場合は、use Firebase's push() method to add new items to itに共通しています。これにより、一部のクライアントが一時的にネットワーク接続を失ってデータを追加している場合でも、すべてのクライアントで一意であることが保証された年代順のキーが生成されます。これらのプッシュIDは、配列インデックスと同じくらい読みやすいものではありませんが、リストに項目を追加する際の推奨方法です。

それは言った。あなたはここのリストを扱っていない、それはユーザーのリストです。 Firebase認証を使用してユーザーアカウントを管理し、認証を処理している場合、ユーザーにはuidというIDのビルドが付属しています。そのような場合は、アイテムを自然なキーの下に格納する方が意味があります。この場合、uidの下にあります。

1

はいあります。 ここには、firebase docsのコードで、Push()の例があります。

var messageListRef = firebase.database().ref('message_list'); 
var newMessageRef = messageListRef.push(); 
newMessageRef.set({ 
    'user_id': 'ada', 
    'text': 'Example of text.' 
}); 

あなたはここに他の方法に関するすべての情報を見つけることができます。 https://firebase.google.com/docs/reference/js/firebase.database.Reference

関連する問題