将父键从Firebase存储到arraylist中并打印出来

时间:2019-06-11 14:34:04

标签: android firebase firebase-realtime-database

Sample

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

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());
                }
            }
            @Override
            public void onCancelled(DatabaseError databaseError) {
            }
        });
        for (int i = 0; i < list1.size(); i++) {
            System.out.println(list1.get(i));
        }
if (!list1.contains(user.getUid())) {
//do something
}

1 个答案:

答案 0 :(得分:0)

如前所述,您正在执行异步任务。 您正在检查列表中是否包含您的用户,而此时列表可能为空。

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