2017-05-16 7 views
1

Firebaseからデータを取得しようとしています。ここでは、決して解雇されないイベントリスナー、onCancelledメソッドもありません。私は答えをhereから試しました。私はルールをチェックした。私は読書許可を持っています。私はいくつかの待ち時間を追加しましたFirebase onDataChangeが起動しない

public class LoginActivity extends AppCompatActivity { 

private DatabaseReference databaseReference; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_login); 


    Button btn = (Button)findViewById(R.id.buttonSign); 

    TextView txt = (TextView)findViewById(R.id.textView); 

    Button btn2 = (Button) findViewById(R.id.button2); 

    FirebaseDatabase database = FirebaseDatabase.getInstance(); 
    databaseReference = database.getReference(); 

    txt.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      createNewDbListener(); 
      Intent intent1 = new Intent(getApplicationContext(), MainActivity.class); 
      startActivity(intent1); 
     } 
    }); 

    btn.setOnClickListener(new View.OnClickListener(){ 
     @Override 
     public void onClick(View v) { 
      Intent intentLoginP = new Intent(getApplicationContext(), LoginPageActivity.class); 
      startActivity(intentLoginP); 
     } 
    }); 

    btn2.setOnClickListener(new View.OnClickListener(){ 
     @Override 
     public void onClick(View v) { 
      Intent intentSignUp = new Intent(getApplicationContext(), SignUpActivity.class); 
      startActivity(intentSignUp); 
     } 
    }); 
} 

private void createNewDbListener() { 
    Log.d(TAG, String.valueOf(databaseReference.child("counties"))); 

    databaseReference.child("counties").addValueEventListener(new ValueEventListener() { 

     @Override 
     public void onDataChange(DataSnapshot dataSnapshot) { 
      Log.d("onDataChange", String.valueOf(databaseReference.child("counties"))); 
     } 

     @Override 
     public void onCancelled(DatabaseError databaseError) { 
      Log.e("DEBUG","OnCancelled", databaseError.toException()); 
     } 
    }); } } 

私は私の研究を行っており、ほとんどすべてを試しました。私は問題が何であるか分からない。私の関数createNewDbListener()が入力され、最初のログが起動されます。

EDIT:私createNewDbListener関数からログ:

5月16日12:25:18.159 7153から7153/com.bla.dipprojectのD/DEBUG: https://dipproject-3953a.firebaseio.com/counties

+0

ログを投稿できますか? –

+0

が @Override ます。public void OnDataChangeの(DataSnapshot dataSnapshot)でログを印刷{ は} – ashish

+0

あなたがtxt'ボタン 'をクリックすると、あなたのMainActivityが開かれていないことを言うの? –

答えて

0
public void getAllUsersFromFirebase() { 
    DatabaseReference UserRef = FirebaseDatabase.getInstance().getReference().child(Constant.FIREBASE_USERS); 

    UserRef.addValueEventListener(new ValueEventListener() { 
     @Override 
     public void onDataChange(DataSnapshot dataSnapshot) { 
      Iterator<DataSnapshot> dataSnapshots = dataSnapshot.getChildren().iterator(); 
      List<FcmUser> fcmUsers = new ArrayList<>(); 
      while (dataSnapshots.hasNext()) { 
       DataSnapshot dataSnapshotChild = dataSnapshots.next(); 
       FcmUser fcmUser = dataSnapshotChild.getValue(FcmUser.class); 

       Log.e("Fcm User Name",fcmUser.name); 
      } 
      mOnGetAllUsersListener.onGetAllUsersSuccess(fcmUsers); 
     } 

     @Override 
     public void onCancelled(DatabaseError databaseError) { 
      mOnGetAllUsersListener.onGetAllUsersFailure(databaseError.getMessage()); 
     } 
    }); 
} 

上記のサンプルコードを試して、デバッグの応答が得られなくなるまでインテントについてコメントしてください。

0

私はまったく同じ問題を抱えていました。すべてを試しました。私は、コンソールに正しく設定されていないアクセスがあったことが判明しました。 firebaseコンソールに移動して、アプリケーションが正しく設定されていることを確認し(設定 - >プロジェクト設定 - >アプリケーションの追加)、google-services.jsonを正しい場所に配置してください。

+0

私は読み取り権を持っており、google-services.jsonが正しく配置されています。私は確かにそれをもう一度ダウンロードしましたが、何も起こりません。 – Pop

+0

また、最初のノードを含むデータベースへのリンクが印刷されます。それは決してonDataChangeメソッドを入力することはありません。 – Pop

+0

どのような誤った設定がありましたか? – Pop

関連する問題