如何遍历Firebase实时数据库中的多个子项?

时间:2018-03-14 08:07:01

标签: java android firebase firebase-realtime-database

Firebase Database

我在Firebase中创建了一个Realtime数据库,如图所示,在我的Android活动中我需要验证,如果CUG移动没有。用户输入的数据与数据库中的任何CUG编号(empcugno)匹配,如果匹配则用户登录。

我面临的问题是:

  1. 如何遍历每个CUG没有。在数据库中
  2. 全部检索
  3. 查询每个

1 个答案:

答案 0 :(得分:1)

要解决此问题,我建议您使用电话号码作为唯一标识符而不是推送ID来更改数据库结构。您的数据库应如下所示:

Firebase-root
   |
   --- Employees
          |
          ---empcugno1
          |    |
          |    --- //details
          |
          ---empcugno2
               |
               --- //details

要检查数据库中是否存在数字,您可以直接在exists()对象上使用DataSnapshot方法,如下所示:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference phoneNumberRef = rootRef.child("Employees").child(enteredPhoneNumber);
ValueEventListener eventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        if(dataSnapshot.exists()) {
            //do something
        } else {
            //do something else
        }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {}
};
phoneNumberRef.addListenerForSingleValueEvent(eventListener);