2017-12-05 8 views
0

私はスクリーンショットの下に示すように、自動インクリメントIDでfirebaseデータベースに新しいユーザーを追加したい:自動的にインクリメントカスタムIDで子を追加 - Firebase

enter image description here

私が試してみました:

var rootRef = firebase.database().ref(); 
    var storesRef = rootRef.child("/users"); 
    storesRef.set({ 
     "name": "user1", 
     "pageId": "user1" 
    }); 
+0

を見ている必要があり

あなたは '0,1,2、...'をするユーザーIDが必要ですか?それ以外の場合は、Firebases組み込みID生成を使用することもできます。作成には作成時間がかかるため、作成順序も保持されます。 –

+0

@alexkucksdorfはい、ユーザーIDが必要です。私がquickbloxからインポートしたので、 –

+1

アレックスが言ったように:順番に使用すると、単調に増加するIDは、アプリケーションのスケーラビリティとオフライン動作の両方に重大な支障をきたすでしょう。 Firebaseのブログ記事(https://firebase.googleblog.com/2014/04/best-practices-arrays-in-firebase.html)を読むことをお勧めします。 –

答えて

1

私はではありませんはこれをお勧めしますが、次のようにお試しください:

storesRef.limitToLast(1).once('value', (snapshot) => { 
    const nextID = parseInt(snapshot.key) + 1; 
    let updates = {}; 
    updates['/users/' + nextID] = // your user; 
    rootRef.update(updates); 
}); 

しかし、このアプローチは非常にエラーが起こりやすいので、Firebasesでは自動的に生成されたIDを使用することを強くお勧めします。あなたはまた、this answer.

関連する問題