java - 在 Firebase 数据库中读取子项时遇到一些问题

标签 java android firebase firebase-realtime-database

! 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) {

            }
        });

最佳答案

在 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

关于java - 在 Firebase 数据库中读取子项时遇到一些问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56661438/

相关文章:

ios - 仅使用客户端代码发送 Firebase 云消息

Android Firebase 通知提供默认图标

java - setGraphic() 在递归创建的 TreeItems 上无法正常工作

java - 在离开字段时,而不是在 Vaadin 8 Binder 中输入用户类型时,更少地运行 validator

java - 创建执行 IO 工作的 observable

android - 如何在 OkHTTP3 中一个接一个地发送请求?

java - 更新 docker-container jre 时区

JavaFX:setOnDragDropped 上的 ImageView 未触发

java - 如何在 Android 的应用程序内切换用户?

firebase - 如何使用 flutter 从错误对话框中导航