2016-09-29 14 views
0

Androidプラットフォーム用のチャットアプリにFirebaseを使用しています。私はFirebaseデータベースのため、このライブラリを使用しています:私はhereからセットアップ私のプロジェクトのすべての手順に従っAndroidからFirebaseデータベースにデータを投稿できません

compile 'com.google.firebase:firebase-database:9.6.0' 

。 Firebaseデータベースのアクセス許可をreadwriteの両方に対してtrueに設定しました。私はFirebaseデータベースに自分のデータを投稿するには、次のコードを使用してい

{ 
    "rules": { 
    ".read": true, 
    ".write": true 
    } 
} 

(コードのブロック以下は一度トリガーボタンはをクリック):

String name = loyalUserText.getText().toString().trim(); 

FirebaseDatabase db = FirebaseDatabase.getInstance(); 
DatabaseReference dbRef = db.getReference().child("name"); 
dbRef.setValue(name); 
Log.e(TAG, "onClick: "+dbRef.toString()); 

そして、私のログに戻り、この:

E/LoginActivity: onClick:https://poztal-14f48.firebaseio.com/name 

Firebaseデータベースを確認しましたが、エントリがありません。それは空に見えます。私は同じ子の名前("name")を持つ子を作成し、新しい値を追加しました。

しかし、この値はValueEventListenerと私のアプリに反映されていません。問題は私のアプリがfirebaseデータベースと通信していないことです。

アップデート:私は私の活動に実装

リスナーがOnCompleteListener<Void>です:

dbRef.setValue(name).addOnCompleteListener(this); 

@Override 
    public void onComplete(@NonNull Task<Void> task) { 
     Log.e(TAG, "onComplete: " + task.isComplete()); 
     Log.e(TAG, "onComplete: " + task.toString()); 
    } 

と、このonComplete()ブロックは達しありませんでした。

ありがとうございます。

+0

完了時にエラーを確認してください。質問を聞いて更新してください。 –

+0

@NishantDubey質問を更新しました。それを調べてください。 – Madhan

+0

これは完了コールバックを追加する方法ではありません。 –

答えて

1

pojoクラスを使用して、以下のようなfirebaseデータベースに値を設定してください。

String name = loyalUserText.getText().toString().trim(); 
User user = new User(); 
user.setName(name); 
FirebaseDatabase db = FirebaseDatabase.getInstance(); 
DatabaseReference dbRef = db.getReference().child("name"); 

dbRef.setValue(user); 
+0

私もpojoクラスを使ってみましたが、私の問題は解決しません。 – Madhan

+0

@Madhanはfirebase authを使ったのですか? –

+0

私は認証を使用していないので、私はデフォルトを変更しました。許可int o読み取りと書き込みの両方に真。 – Madhan

0

あなたはnameというフィールドに対して[NAME]を挿入しようとしている場合は、Mapを試してみてください。

Map<String, String> param = new HashMap<>(); 
param.put("name", loyalUserText.getText().toString().trim()); 

Firebase reference = new Firebase(YOUR_FIREBASE_URL); 
reference.push().setValue(param); 
関連する問題