2016-05-26 18 views
0

新しいFirebaseコンソールを使用しています。オブジェクトをデータベースに保存しようとしていますが、保存されません。以下はコードです。データがアンドロイドからFirebaseデータベースに保存されない

DatabaseReference mFirebaseRef = FirebaseDatabase.getInstance().getReference(); 
mFirebaseRef.push().setValue(object, new DatabaseReference.CompletionListener() { 
      @Override 
      public void onComplete(DatabaseError databaseError, DatabaseReference reference) { 
       if (databaseError != null) { 
        Log.e(TAG, "Failed to write message", databaseError.toException()); 
       } 
      } 
     }); 

「オブジェクト」が正しく作成されます。私が取得しているエラーはありませんし、onCompleteメソッドがトリガーされていないことをデバッグでチェックしました。 セキュリティルールは書き込みにも当てはまります。

+0

'オブジェクト 'の作成方法を表示できますか?あるいは、問題を再現できる最小の「オブジェクト」ですか? –

+0

オブジェクトはJavaクラス参照です。オブジェクトオブジェクト=新しいオブジェクト(params)。コードはハッシュマップでも動作しません。 –

答えて

2

DatabaseReference.CompletionListenerは、「データベースサーバーによって操作が確認されたときに」起動することに注意してください。テストを実行したときにネットワークに接続していない可能性はありますか?私はあなたのコードをコピーして、次のように定義されたobjectとの電話で正常にそれを実行しました:

Object object = new String("Test"); 

私は、コードを再実行し、あなたが記述の挙動を観察し、機内モードを有効に。完成したリスナーは飛行機モードを無効にし、ネットワーク接続が確立されるまでは起動しませんでした。

ネットワーク接続の状態を確認するコードの例は、this documentationにあります。

mFirebaseRef.push().setValue(object).addOnCompleteListener(new OnCompleteListener<Void>() 
{ 
          @Override 
          public void onComplete(@NonNull Task<Void> task) { 
          if(task.isSuccessful()){ 
           // write code for successfull operation 
          } 
          } 
         }); 
        } 

それは以前格納されたデータに上書きされます.pushあなたが使用していない場合は、あなたのデータが保存される上でランダムキーを生成します.push:

+1

私はマニフェストでインターネット許可を持っていませんでした。ありがとう、それは愚かな間違いだった。 –

0

は、以下のコードを使用します。

関連する問題