浪费两小时这个问题。尝试了一切,但没有任何解决方案奏效。 我使用firebase onChildAdded的数据读取代码来获取用户数据,然后使用if else条件来确定它。
在的onCreate
mFirebaseDatabase=FirebaseDatabase.getInstance();
mMessagesDatabaseReference=mFirebaseDatabase.getReference().child("user").child(root).child(id);
attachDatabaseReadListener();
监听方法
private void attachDatabaseReadListener() {
if (mChildEventListener == null) {
mChildEventListener = new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
User u = dataSnapshot.getValue(User.class);
mUser=u.GetUser();
mEmail=u.GetEmailId();
Toast.makeText(getApplicationContext(),"here"+mUser,Toast.LENGTH_SHORT).show();
}
public void onChildChanged(DataSnapshot dataSnapshot, String s) {}
public void onChildRemoved(DataSnapshot dataSnapshot) {}
public void onChildMoved(DataSnapshot dataSnapshot, String s) {}
public void onCancelled(DatabaseError databaseError) {}
};
mMessagesDatabaseReference.addChildEventListener(mChildEventListener);
}
}
条件检查,它可以是任何东西。
if(mUser==null&&mEmail==null) {
//do something here
}
else
{
//do nothing
}
注:需要一些时间来执行对儿童加入这么加适当的延迟 我只有一个节点,以便该代码工作完美的我。如果有其他解决方案或更简单的解决方案可用,请让我知道。
如果根节点不存在,那么它也将显示为空,因此请在部署应用程序推送根节点之前记住这一点。
这样做的一种方法记录在这里:http://stackoverflow.com/q/24824732/209103(该答案适用于Firebase的JavaScript SDK,但逻辑与任何支持的平台相同)。 – 2015-04-02 00:29:32