Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/218.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 主题:Firebase Android中的查询-数据检索_Java_Android_Firebase Realtime Database - Fatal编程技术网

Java 主题:Firebase Android中的查询-数据检索

Java 主题:Firebase Android中的查询-数据检索,java,android,firebase-realtime-database,Java,Android,Firebase Realtime Database,这是我的firebase数据库格式: -组   -组名     -groupId       -键1:“值1”      -键2:“值2”       -键3:“值3” 我需要访问key3的value3 我有groupId 下面是我想出的代码。但是当我运行这个程序时,我的屏幕一直在崩溃 private void method_does_user_belong_to_this_group() { expected_key3 = editText_expected_key3.

这是我的firebase数据库格式:

-组
  -组名
    -groupId
      -键1:“值1”      -键2:“值2”
      -键3:“值3”

我需要访问
key3
value3

我有
groupId

下面是我想出的代码。但是当我运行这个程序时,我的屏幕一直在崩溃

    private void method_does_user_belong_to_this_group() {
        expected_key3 = editText_expected_key3.getText().toString();
        reference.child("groups").orderByChild(groupId+"/"+"key3").addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot snapshot) {
                if (snapshot.exists()) {
                    key3 = snapshot.getValue().toString();
                    if (key3.equals(expected_key3)) {
                        Toast.makeText(RoomJoiningPage.this, "Key3 found.", Toast.LENGTH_SHORT).show();
                    }
                    else {
                        Toast.makeText(RoomJoiningPage.this, "Key3 not found"+key3, Toast.LENGTH_SHORT).show();
                    }
                }
                else  {
                    Toast.makeText(RoomJoiningPage.this, "Key3 not found"+key3, Toast.LENGTH_SHORT).show();;
                }
            }

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

            }
        });
我甚至也试过这个部分:

GroupDataClass groupDataClass = snapshot.getValue(GroupDataClass.class);
String key3 = groupDataClass.getKey();
通过从上述方法中省略此部分:

key3 = snapshot.getValue().toString();
但即便如此,我的屏幕还是会不断崩溃。
我们衷心感谢您的帮助

编辑-1
到目前为止,我已经尝试过编辑代码。现在崩溃已经停止,但我收到的值是“null”


是否检查了快照是否获取数据?@Ashish使用快照时,我获取的是空值。您的查询无效。所以最好为groupname提供it@Ashish你能不能提供一个关于我在开始时展示的DB结构的例子。两天前我刚学了firebase的东西。所以我仍然不熟悉这里的查询。加入聊天室:你检查过你的快照是否获得数据了吗?@Ashish使用快照我得到了一个空值。你的查询无效。所以最好为groupname提供it@Ashish你能不能提供一个关于我在开始时展示的DB结构的例子。两天前我刚学了firebase的东西。所以我还是不太熟悉这里提问的来龙去脉。加入房间:
        Log.d(LOG_TAG,"Debug Count - 12");
        Log.d(LOG_TAG,"Entered else but didnt run the code below");
        Toast.makeText(this, "Code entered.", Toast.LENGTH_SHORT).show();
        reference_to_rooms_db = FirebaseDatabase.getInstance().getReference("rooms");
        reference_to_rooms_db.orderByChild(string_current_users_number).addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot snapshot) {
                Log.d(LOG_TAG,"went inside \"onDataChanged\"");
                if (snapshot.exists()) {
                    Log.d(LOG_TAG,"went inside \"if\"");
                    Log.d(LOG_TAG,"snapshot existed");
                    code = snapshot.child("code").getValue(String.class);
                    Log.d(LOG_TAG,"code copied - "+code+".");
                    Toast.makeText(RoomJoiningPage.this, "added code:"+code, Toast.LENGTH_SHORT).show();
                    Log.d(LOG_TAG,"toasted within \"if\"");
                }
                else {
                    Log.d(LOG_TAG,"went inside \"else\"");
                }
            }

            @Override
            public void onCancelled(@NonNull DatabaseError error) {
                Log.d(LOG_TAG,"went inside \"onCancelled\"");
            }
        });