Sum*_*kla 4 android firebase firebase-realtime-database
我试图以Map格式从firebase数据库中检索数据,但我得到一个空指针异常.我已成功使用map将数据插入到我的firebase数据库中.
这是我的代码:
public class Chat extends AppCompatActivity {
DatabaseReference databaseReference1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_chat);
Firebase.setAndroidContext(this);
databaseReference1 = FirebaseDatabase.getInstance().getReferenceFromUrl("URL");
databaseReference1.addChildEventListener(new com.google.firebase.database.ChildEventListener() {
@Override
public void onChildAdded(com.google.firebase.database.DataSnapshot dataSnapshot, String s) {
Map map = (Map) dataSnapshot.getValue();
String message = map.get("text").toString(); //ERROR GOES HERE!!
String userName = map.get("Username").toString();
}
@Override
public void onChildChanged(com.google.firebase.database.DataSnapshot dataSnapshot, String s) {
}
@Override
public void onChildRemoved(com.google.firebase.database.DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(com.google.firebase.database.DataSnapshot dataSnapshot, String s) {
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
在检索时更改您的代码
Map<String, String> map = (Map) dataSnapshot.getValue();
Run Code Online (Sandbox Code Playgroud)
代替
Map map = (Map) dataSnapshot.getValue();
Run Code Online (Sandbox Code Playgroud)
编辑: 您可以使用以下代码检索录制列表
databaseReference1.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot postSnapshot : dataSnapshot.getChildren()) {
Map<String, String> map = (Map) postSnapshot.getValue();
if (map != null) {
String message = map.get("text");
String userName = map.get("Username");
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5524 次 |
| 最近记录: |