Firebaseを使用して最初のAndroidアプリケーションを開発しています。それは全体的に私の最初のアンドロイドアプリでもあるので、私は期限切れになっていませんが、JavaやPHPなどのプログラミングラングウォークではすでにいくつかの期限があります。私は自分のコード構成にいくつかの問題がありますので、専門的なアドバイスを探しています。私はすでにいくつかの研究をしましたが、これに対して良い解決策を見つけることができませんでした。AndroidのFirebaseコードの構成(コンセプト)
私のアプリはFirebase認証とFirebaseリアルタイムデータベースを使用しています。
私は問題に関連するすべての部分について説明します。
主な活動...
- チェックし、ユーザーがログインしている場合、いない場合は、認証活動を開始
- がデータベースに責任があるオブジェクト
DatabaseHandler
を含みますこのオブジェクトには、UserInfoオブジェクトがインスタンス化される必要があります FirebaseAuth
オブジェクトが含まれていますAuthStateListener
- それは
- が
DatabaseHandler
から取得いくつかのデータを表示することができなければならない現在のユーザとDatabaseHandler
オブジェクトを再インスタンス化する場合は、ユーザーは、ログインしている場合、このAuthStateListener
チェック私はすでにのonCreate()
方法でDatabaseHandler
オブジェクトへのアクセスを持っている必要があります私の問題
2882いくつかのデータを表示するために、しかしDatabaseHandler
以来onCreate()
がonAuthStateChanged()
私の考えの前に呼び出されるため、ユーザーがログインし、これは動作しません既に存在であることを確認するために、方法onAuthStateChanged()
でインスタンス化されます
私はこの問題を解決する方法は完全にはわかりませんが、私の主なアクティビティは自分のデータを表示するのではなく、どのアクティビティを呼び出すかチェックする方法でプロジェクトを再構築することでした。私はまだプロジェクトの初期段階にあるので、これは大きな問題ではありません。 これがうまくいくか、もっと良い解決策があるかどうかを知りたい。
あなたは本のリストを表示したいと仮定したコードと活動の例として、私はここにあなたが何を考えて
は、私の知る限り理解し、あなたがいない覚えている
onCreate
もののすべてを経由せずにリストを再移入することができますpopulateList
、からそれを表示します**あなたのデータを取得し、 'onCreate'で表示する**を持っています。アクティビティーの別のカスタム・メソッドからUIを更新することができます。このメソッドでUI要素を '見つける'か、アクティビティクラスのフィールドとして宣言し、 'onCreate'でそれらを見つけ出す必要があります。私が望むなら、私が意味するものの例を掲示することができます。 – Barthy私はアンドロイドの概念に精通していないと述べた。私はrecylcerビューを使用しています。チュートリアルのコードを入手しました。このチュートリアルでは、onCreate()メソッドでrecylcerviewの内容を宣言する必要があります。 –