2016-09-22 13 views
1

私は今、新しいFirebase APIを使って最初のアプリケーションで作業しています。そして、これを行う正しい方法がわからないので、Firebaseのオブジェクト参照を自分のコードで保持するのに問題があります。Firebase Referenceをコードに保存する最も良い方法

これはそうです。私はユーザーがグループを作ることができるアプリケーションを持っています。そして、このグループの中で(彼らは複数のグループに属することができます)、いくつかのものを投稿することができます。私は次のクエリを実行し、特定のグループiI'mに関連した記事を回復したいとき

{ 
    "Posts":{ 
      "GroupKey1":{ 
       "PostKey1":{ 
        "text": 
        "imageUrl": 
        "author":{ 
         ... 
        } 
       } 
       "PostKey2":{ 
        "text": 
        "imageUrl": 
        "author":{ 
         ... 
        } 
       } 
       "PostKey3":{ 
        "text": 
        "imageUrl": 
        "author":{ 
         ... 
        } 
       } 
      } 
      "GroupKey2":{ 
       .... 
      } 
     } 
} 

ので、::

Query newQuery = FirebaseDatabase.getInstance().getReference().child("posts").child(mCurrentGroupID); 

すべてはそれで結構です、私の実際のFirebaseデータベースでは、のように見えます。それはうまくいきます。しかし、私はそのmCurrentGroupID Stringを、私のグループアクティビティとフラグメント内のすべてのライフサイクルを維持しておく必要があります。今はコードを使って文字列を生かしているバンドルを使用していますが、それは本当に驚きです。

私の質問は、この種の変数をコード内に生かす最良の方法は何ですか? SharedPreferencesを使用しますか?まだバンドル、静的変数、BaseActivityの残りの活動のために拡張されているデフォルトの項目で作業...

誰かが私に手を差し伸べることを望む!あらかじめ全員ありがとう!

答えて

2

Applicationクラスでは、アプリ全体でグローバル変数を使用するようにしておくことをお勧めします。これは特にAndroidでのものです。 Hereは、アプリケーションクラスを使用してグローバル変数を保存および取得する方法のチュートリアルです

1

初めてこのIDを受け取ったらSharedPreferenceManagerに保存し、残りの場所はSharedPreferenceManagerから取得できます。 Firebaseから取得するたびにそのIDを更新してください。

+0

私はすでにSharedPreferencesに保存すると思いますが、1人のユーザーが複数のグループを持つことができるので、グループごとにだからこそ、私は最良の方法があるかどうかわからないのです! –

+0

はいユーザがグループを変更するたびに、現在のグループIDをfirebaseから取得し、prefManagerで更新します。 – Pr38y

+0

もう一つの方法は、firebase自体からフェッチすることですが、私は再びネットワークコールを行うと思います。 – Pr38y

関連する問題