【问题标题】:Having some issue reading the child in Firebase Database在 Firebase 数据库中读取孩子时遇到问题
【发布时间】:2019-06-19 06:35:35
【问题描述】:

!https://photos.app.goo.gl/8axsEgMJQAsBFnJF9

所以我试图将我的字符串与数据库进行比较,我想检查用户给定的字符串是否存在于数据库中。但是当我写代码时,输​​出总是没有。我尝试了 ValueEventListener 和 ChildEventListener。

那么我怎样才能得到所需的结果。

parentRef = FirebaseDatabase.getInstance().getReference();

parentRef.child("Companies").addChildEventListener(new ChildEventListener() {
            @Override
            public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
                if ((dataSnapshot.child("jaq").exists())) {
                    Toast.makeText(MainActivity.this, "Yes", Toast.LENGTH_SHORT).show();
                }
                else {
                    Toast.makeText(MainActivity.this, "No", Toast.LENGTH_SHORT).show();
                }
            }

            @Override
            public void onChildChanged(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
                if ((dataSnapshot.child("jaq")).exists()) {
                    Toast.makeText(MainActivity.this, "Yes", Toast.LENGTH_SHORT).show();
                }
                else {
                    Toast.makeText(MainActivity.this, "No", Toast.LENGTH_SHORT).show();
                }
            }

            @Override
            public void onChildRemoved(@NonNull DataSnapshot dataSnapshot) {

            }

            @Override
            public void onChildMoved(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {

            }

            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {

            }
        });

【问题讨论】:

    标签: java android firebase firebase-realtime-database


    【解决方案1】:

    在 valueEventListener 中尝试以下操作:

    DatabaseReference reference = database.getReference("Companies");
    reference.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
    
            for (DataSnapshot childSnapshot : dataSnapshot.getChildren()) {
                 if(childSnapshot.child("jaq").exists()){
                   Toast.makeText(MainActivity.this, "Yes", Toast.LENGTH_SHORT).show();
                 }
           }
      }
          @Override
         public void onCancelled(DatabaseError databaseError) {
          }
      });
    

    在这里,您在 dataSnapshot 中循环,然后检查子 jaq 是否存在于数据库中。

    【讨论】:

      猜你喜欢
      • 2023-01-20
      • 2020-03-30
      • 1970-01-01
      • 2019-01-28
      • 2021-10-12
      • 2019-10-09
      • 2018-02-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多