Android Firebase获取数据的值
我有该用户的用户ID,因此当我第二次打开应用程序(登录后)时,我不应显示“选择用户类型”布局。因此,我必须检查使用是客户还是员工内部。所以问题是我必须检查用户Id是否存在。我找不到任何方法来获取用户Id是否存在!有一个名为addListenerForSingleValueEvent的方法,但在我的场景中它对我没有帮助。这里给出了数据库的图片 我不知道在这之后如何继续Android Firebase获取数据的值,android,firebase,firebase-realtime-database,firebase-authentication,Android,Firebase,Firebase Realtime Database,Firebase Authentication,我有该用户的用户ID,因此当我第二次打开应用程序(登录后)时,我不应显示“选择用户类型”布局。因此,我必须检查使用是客户还是员工内部。所以问题是我必须检查用户Id是否存在。我找不到任何方法来获取用户Id是否存在!有一个名为addListenerForSingleValueEvent的方法,但在我的场景中它对我没有帮助。这里给出了数据库的图片 我不知道在这之后如何继续 String userID = user.getUid(); mFirebaseDatabase = FirebaseDatab
String userID = user.getUid();
mFirebaseDatabase = FirebaseDatabase.getInstance();
要检查Firebase数据库的特定部分中是否存在用户,首先需要添加一个侦听器,然后直接在
dataSnapshot
对象上使用exists()
方法。因此,如果Users
节点是Firebase数据库根目录的直接子节点,请使用以下代码:
mFirebaseDatabase.getReference().child("Users").child("Customers")
只是在听!这也需要一点时间。我们不能在没有任何监听器的情况下直接查询吗?或者像我们设置值的方法一样!??不,你不能像你说的那样直接查询。说到Firebase,一切都与听众有关。因此,为了检索一些数据,您需要添加一个侦听器。设置值时,只需直接对引用使用
setValue()
方法。为了检索数据,您需要附加一个侦听器。
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference customersRef = rootRef.child("Users").child("Customers").child(userID);
ValueEventListener eventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if(dataSnapshot.exists()) {
//do somethig
} else {
//do something else
}
}
@Override
public void onCancelled(DatabaseError databaseError) {}
};
customersRef.addListenerForSingleValueEvent(eventListener);