2016-08-21 11 views
5

こんにちは私はfirebaseプロジェクトに取り組んでいます。私はfirebaseデータベースにjavascriptでデータを保存できます。しかし、私は自分のデータベースの自動インクリメントの子の値(私の子供の価値はduyuruです、あなたは詳細を見ることができます)を把握できませんでした。私はこの問題を解決するためのヒントを与えることができます私のコードを共有しています。javascriptを使ってFirebaseの値を自動インクリメントする

<script> 

     // Initialize Firebase 
     var config = { 
     apiKey: "sample1", 
     authDomain: "sample2", 
     databaseURL: "sample3", 
     storageBucket: "sample4", 
     }; 


     firebase.initializeApp(config); 
     var database = firebase.database(); 

    firebase.initializeApp(config); 
    var database = firebase.database(); 

    function writeUserData(userId, name, email, imageUrl) { 
    var kategori1 = document.getElementById("kategori").value; 
    var duyuru1 = document.getElementById("duyuru").value; 
    var name1 = document.getElementById("name").value; 
    var email1 = document.getElementById("email").value; 
    var imageUrl1 = document.getElementById("imageUrl").value; 





    firebase.database().ref(kategori1 +"/" + duyuru1).set({ 
    username: name1, 
    email: email1, 
    profile_picture : imageUrl1 
    }); 
} 

    </script> 

とアウトは、私のようなデータを出力するようにしたい。この

{ 
    "duyuru1": { 
     "email": "kjfdlkl", 
     "profile_picture": "dsfsd", 
     "username": "meraha" 
    } 
} 

のようなものです。

{ 
    "duyuru1": { 
     "email": "kjfdlkl", 
     "profile_picture": "dsfsd", 
     "username": "meraha" 
    }, 

    "duyuru2": { 
     "email": "kjfdlkl", 
     "profile_picture": "dsfsd", 
     "username": "meraha" 
    } 
} 

「デュユール」セクションは自動インクリメントでなければなりません。これは私が欲しいものです。あなたの答えをありがとうございます

答えて

8

Firebaseは、クライアントが長期間オフラインになる大規模なマルチユーザシステムではうまく動作しないため、自動インクリメントキーはありません。

代わりに、FirebaseにはプッシュIDと呼ばれる独自のタイプの自動生成キーがあります。これらのプッシュIDは、多くのリレーショナルデータベースのシーケンスと同じ重要な特性を持っています。ただし、クライアントがFirebaseサーバに接続されていない場合でも、クライアント側で計算できます。

このレガシーblog post on why arrays don't work well in Firebasepost on how push ids workを参照してください。Firebase documentation on saving data in lists

+0

私の質問にお答えいただきありがとうございます。しかし、私はランダムキーを作成したメソッドを使用するときに何かを尋ねたい、私はちょうどjavascriptでカスタムインクリメントを作成する方法があるかと思います。ユーザーがデータを追加するときと同様に、データは自動的に増加します。たとえばduyuru1の最初の投稿、duyuru2の2番目の投稿など。 –

+0

最後の数字は配列インデックスのように見えるので、縮尺されません。私が提供したリンクは私がここでできるよりも良い理由を説明しています。カスタムシーケンスの使用を主張する場合は、それを自分で実装する必要があります。 Firebaseには、組み込みのサポートはありません。 –

+0

ありがとうございました。あなたが私にそのデフォルトプロパティでのより良い仕事をくれたリンクに感謝します。あなたの答えは、私のアプリをもう一度見てくれます。良い一日を –

関連する問題