"println needs a message" android 中的错误
"println needs a message" error in android
我想读Music_ID组的Playlist_ID组2 在 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
}
});
我想读Music_ID组的Playlist_ID组2 在 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
}
});