首页 > 解决方案 > 无法从 firebase 检索数据(java.lang.NullPointerException:尝试调用虚拟方法 'java.lang.String)

问题描述

当我尝试检索用户图片时出现此异常(也当我尝试获取用户名或有关用户的任何信息时)。

在此处输入图像描述

java.lang.NullPointerException:尝试在 com.example.signup.adapter.PostAdapter$1.onDataChange( PostAdapter.java:70) 在 com.google.firebase.database.core.ValueEventRegistration.fireEvent(ValueEventRegistration.java:75) 在 com.google.firebase.database.core.view.DataEvent.fire(DataEvent.java:63)在 com.google.firebase.database.core.view.EventRaiser$1.run(EventRaiser.java:55) 在 android.os.Handler.handleCallback(Handler.java:751) 在 android.os.Handler.dispatchMessage(Handler. java:95) 在 android.os.Looper.loop(Looper.java:154) 在 android.app.ActivityThread.main(ActivityThread.java:6682) 在 java.lang.reflect.Method.invoke(Native Method) 在 com .android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520) 在 com。android.internal.os.ZygoteInit.main(ZygoteInit.java:1410)

我的代码:

     FirebaseDatabase.getInstance().getReference().child("Users").child(post.getPublisher()).addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

                User user = dataSnapshot.getValue(User.class);
              if (user.getProfile_pic().equals("default")) {
                    holder.imageProfile.setImageResource(R.mipmap.ic_launcher);
                } else {
                    Picasso.get().load(user.getProfile_pic()).placeholder(R.mipmap.ic_launcher).into(holder.imageProfile);
                }

                holder.username.setText(user.getUsername());
            }

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

            }
        });

标签: androidfirebasefirebase-realtime-database

解决方案


您的查询与您的数据不匹配。您的数据位于名为“users”的子项中,但您的查询要求另一个名为“Users”且大写为 U 的子项。大小写必须完全匹配。


推荐阅读