"println needs a message" android 中的错误

"println needs a message" error in android

我想读Music_ID组的Playlist_ID2 在 Firebase 中。

出现以下错误。

java.lang.NullPointerException: println needs a message

这是我的 firebase 实时数据库。

这是我的代码。

database = FirebaseDatabase.getInstance();
storage = FirebaseStorage.getInstance();
dref = FirebaseDatabase.getInstance().getReference();
private void Startplaylist(String mood) {
        DatabaseReference plist = dref.child("Playlist");
        plist.orderByChild("Playlist_ID").equalTo(2).addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                // Log.i("Value", dataSnapshot.getValue().toString());
                String music_id = dataSnapshot.child("Music_ID").getValue(String.class);
                Log.i("Value_id", music_id);
                str_musictitle.setText(music_id);

            }

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

            }
        });
    }

告警提示该部分出错。 Log.i("Value_id", music_id);

我认为“music_id”没有被阅读。

我试着换了一部分 String music_id = dataSnapshot.child("Music_ID").getValue(String.class); String music_ids = dataSnapshot.child("Music_ID").getValue().toString(); 和 运行 它,但我得不到想要的结果。

当您对 Firebase 数据库执行查询时,可能会有多个结果。所以快照包含这些结果的列表。即使只有一个结果,快照也会包含一个结果的列表。

onDataChange 中的代码将需要通过遍历 dataSnapshot.getChildren() 来处理此列表。像这样:

DatabaseReference plist = dref.child("Playlist");
plist.orderByChild("Playlist_ID").equalTo(2).addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
        for (DataSnapshot snapshot: dataSnapshot.getChildren()) { //  Loop over results
            String music_id = snapshot.child("Music_ID").getValue(String.class); //  Get value for this result
            Log.i("Value_id", music_id);
            str_musictitle.setText(music_id);
        }
    }

    @Override
    public void onCancelled(@NonNull DatabaseError error) {
        throw error.toException(); //  Never ignore possible errors
    }
});