Android 将firebase中的父密钥存储到arraylist中并打印输出

Android 将firebase中的父密钥存储到arraylist中并打印输出,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,图中显示的键是用户的UID。我正在尝试将这些键存储到arraylist,并检查currentuser的UID是否不在arraylist中,但结果失败,因为println没有显示任何内容 final FirebaseUser user=FirebaseAuth.getInstance().getCurrentUser(); database=FirebaseDatabase.getInstance().getReference().child(“牙医”); database.addListener

图中显示的键是用户的UID。我正在尝试将这些键存储到arraylist,并检查currentuser的UID是否不在arraylist中,但结果失败,因为println没有显示任何内容

final FirebaseUser user=FirebaseAuth.getInstance().getCurrentUser();
database=FirebaseDatabase.getInstance().getReference().child(“牙医”);
database.addListenerForSingleValueEvent(新的ValueEventListener()){
@凌驾
公共void onDataChange(DataSnapshot DataSnapshot){
对于(DataSnapshot子项:DataSnapshot.getChildren())
{
list1.add(child.getKey());
}
}
@凌驾
已取消的公共void(DatabaseError DatabaseError){
}
});
对于(int i=0;i
如前所述,您正在执行异步任务。 您正在检查列表是否包含您的用户,而此时您的列表可能为空

final FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
database= FirebaseDatabase.getInstance().getReference().child("Dentist");
        database.addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                for (DataSnapshot child: dataSnapshot.getChildren())
                {
                   list1.add(child.getKey());
                }
                for (int i = 0; i < list1.size(); i++) {
                   System.out.println(list1.get(i));
               }
               if (!list1.contains(user.getUid())) {
                  //do something
               }
            }
            @Override
            public void onCancelled(DatabaseError databaseError) {
            }
        });
final FirebaseUser user=FirebaseAuth.getInstance().getCurrentUser();
database=FirebaseDatabase.getInstance().getReference().child(“牙医”);
database.addListenerForSingleValueEvent(新的ValueEventListener()){
@凌驾
公共void onDataChange(DataSnapshot DataSnapshot){
对于(DataSnapshot子项:DataSnapshot.getChildren())
{
list1.add(child.getKey());
}
对于(int i=0;i
如前所述,您正在执行异步任务。 您正在检查列表是否包含您的用户,而此时您的列表可能为空

final FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
database= FirebaseDatabase.getInstance().getReference().child("Dentist");
        database.addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                for (DataSnapshot child: dataSnapshot.getChildren())
                {
                   list1.add(child.getKey());
                }
                for (int i = 0; i < list1.size(); i++) {
                   System.out.println(list1.get(i));
               }
               if (!list1.contains(user.getUid())) {
                  //do something
               }
            }
            @Override
            public void onCancelled(DatabaseError databaseError) {
            }
        });
final FirebaseUser user=FirebaseAuth.getInstance().getCurrentUser();
database=FirebaseDatabase.getInstance().getReference().child(“牙医”);
database.addListenerForSingleValueEvent(新的ValueEventListener()){
@凌驾
公共void onDataChange(DataSnapshot DataSnapshot){
对于(DataSnapshot子项:DataSnapshot.getChildren())
{
list1.add(child.getKey());
}
对于(int i=0;i
addListenerForSingleValueEvent(新值EventListener()
是一个异步侦听器,如果您在
onDataChange
中选中
list1
,您将获得results@BenShmuel已解决。感谢您的帮助。
addListenerForSingleValueEvent(新的ValueEventListener())
是一个异步侦听器,如果您在
onDataChange
中选中
list1
,您将获得results@BenShmuel解决了,谢谢你的帮助。