2017-01-14 45 views
0

我在android studio中使用Firebase,我想创建一个注册和登录项目。我可以将数据保存到Firebase,但我无法检索数据。Firebase android问题

在每一个例子中,它都是实时的,就像我们先建立一个监听器并保存数据一样 - 但我的存储只是存储和稍后检索。

有没有办法检索数据? (我希望你能理解:()

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

从火力地堡数据库中检索数据做是如果没有你的'onDataChange()'也不是你'onCancelled()'被调用,这很可能是您没有连接到网络。 –

+1

我不知道你是否已经用其他方式检查过了,如果调用了onDataChange,但是看上面的代码,我不会依靠点击“完成”日志。您正在比较字符串,您应该使用.equals()方法来比较字符串,而不是==。 http://stackoverflow.com/a/767379/5251523 –

回答

1

在java中==操作符来比较字符串不总是返回true即使字符串值可能是同一

尝试这样做:可以通过安装监听器

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

好赶上!我忽略了那个。 –

+1

哇!它工作:)谢谢 – Huzi

+0

您可以接受答案,以便我帮助其他人 –