2017-01-14 9 views
0

Я использую Firebase в андроид-студии, и я хочу создать проект регистрации и входа в систему. Я могу сохранить данные в Firebase, но я не могу получить данные.Firebase android problems

В каждом примере это в реальном времени. В отличие от этого, мы сначала настраиваем прослушиватель и сохраняем данные, но мои данные хранятся, а затем извлекаются.

Есть ли способ получить данные? (Я хочу, чтобы ты мог понять :()

public void onLogIn(View v){ 
    reference2 = fbData.getReference(loginId.getText().toString()); 
    reference2.addListenerForSingleValueEvent(new ValueEventListener() { 
     @Override 
     public void onDataChange(DataSnapshot dataSnapshot) { 
      String gotPw = dataSnapshot.getValue(String.class); 
      if(gotPw == loginPw.getText().toString()){ 
       Log.d("TEST","DONE"); 
      } 
     } 

     @Override 
     public void onCancelled(DatabaseError databaseError) { 
      Log.d("TEST","ERROR"); 
     } 
    }); 

} 

Этот код даже не вызывается метод OnDataChange.

+1

Извлечение данных из базы данных Firebase осуществляется путем прикрепления слушателя Если ни ваш 'OnDataChange()', ни ваш 'onCancelled()' вызывается,скорее всего, вы не подключены к сети. –

+1

Я не знаю, были ли вы уже проверены другими способами, если вызывается onDataChange, но, глядя на код выше, я не стал бы полагаться на попадание в журнал «DONE». Вы сравниваете строки, вы должны использовать метод .equals() для сравнения строк, а не ==. http://stackoverflow.com/a/767379/5251523 –

ответ

1

В Java == оператора для сравнения строки не всегда возвращает истину, даже если строковые значения может быть такой же

Попробуйте сделать:..

if(gotPw.equals(loginPw.getText().toString())){ 
      Log.d("TEST","DONE"); 
     } 
+1

Хорошая добыча! Я забыл об этом. –

+1

WOW! Это сработало :) Спасибо – Huzi

+0

Вы можете принять ответ, чтобы я помогал другим –

 Смежные вопросы

  • Нет связанных вопросов^_^