Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/182.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Firebase获取数据的值_Android_Firebase_Firebase Realtime Database_Firebase Authentication - Fatal编程技术网

Android Firebase获取数据的值

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

我有该用户的用户ID,因此当我第二次打开应用程序(登录后)时,我不应显示“选择用户类型”布局。因此,我必须检查使用是客户还是员工内部。所以问题是我必须检查用户Id是否存在。我找不到任何方法来获取用户Id是否存在!有一个名为addListenerForSingleValueEvent的方法,但在我的场景中它对我没有帮助。这里给出了数据库的图片

我不知道在这之后如何继续

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);