java - Firebase:无法将 java.lang.Boolean 类型的值转换为字符串

标签 java android firebase firebase-realtime-database

您好,我正在尝试检查我的数据库中的 boolean 值是否为 false,但是我收到了无法将 java.lang.Boolean 类型的值转换为字符串的错误。

Structure of DB

   Query q = databaseReference.child("Chatmessages").child(currentChatUser).child(userId);
      ValueEventListener eventListener = new ValueEventListener() {
          @Override
          public void onDataChange(DataSnapshot dataSnapshot) {
              String true3 = "true";
              for(DataSnapshot ds : dataSnapshot.getChildren()) {


                  if(ds.child("read").getValue(String.class).equals(false)){
                      ds.child("read").getRef().setValue(true);
                  }
              }
          }
          @Override
          public void onCancelled(DatabaseError databaseError) {}
      };
      q.addListenerForSingleValueEvent(eventListener);

最佳答案

你的比较是错误的:

ds.child("read").getValue(String.class).equals(false)

您读取的 String 值永远不会与 Booleanfalse 为真。

要么做一个字符串到字符串的比较:

ds.child("read").getValue(String.class).equals("false")

或者先把字符串转成 boolean 值再比较:

Boolean.valueOf(ds.child("read").getValue(String.class)).equals(false)

关于java - Firebase:无法将 java.lang.Boolean 类型的值转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46503384/

相关文章:

Java netty每秒只能接受X个请求?

Android WebView shouldOverrideUrlLoading 问题

android - 我如何计算 firebase 实时数据库中子节点内的值的总和?

java - 我可以在 Firebase 数据库中存储 Int 值吗

php - 如何向远程数据库添加数据?

java - 适用于 Android 的 firebase 云存储和 firestore 上传

java - 钻取错误 : UNSUPPORTED_OPERATION ERROR: Only COUNT, VarChar 类型支持的 MIN 和 MAX 聚合函数

Java 循环结构,可迭代字符串并使用多个变量

Java - 具体的链表序列化

android - android 和 ios 中的 https 获取请求阻塞 - React Native