Rid*_*ido 2 java android firebase firebase-realtime-database
从firebase实时数据库获取数据的源代码:
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference myRef = database.getReference("hotel");
myRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String value = dataSnapshot.getValue(String.class);
Log.d(TAG, "Value is: " + value);
}
@Override
public void onCancelled(DatabaseError error) {
Log.w(TAG, "Failed to read value.", error.toException());
}
});
Run Code Online (Sandbox Code Playgroud)
它说错误是这样的:
com.google.firebase.database.DatabaseException:无法将java.util.HashMap类型的值转换为String
我试过一些教程,但我找不到一个.另外,我试试这个:
HashMap value = DataSnapshot.getValue(HashMap.class);
Run Code Online (Sandbox Code Playgroud)
它最终也出现了错误.我该如何渲染这个HashMap数据?
vik*_*mar 10
你得到的HashMap的字符串作为重点和对象的值,因此它映射到类似下面.
myRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Map<String, Object> map = (Map<String, Object>) dataSnapshot.getValue();
Log.d(TAG, "Value is: " + map);
}
@Override
public void onCancelled(DatabaseError error) {
Log.w(TAG, "Failed to read value.", error.toException());
}
});
Run Code Online (Sandbox Code Playgroud)
或者我们可以将其解析为某个模型而不是对象.
update 使用它来解析
Map<String, Object> map = (Map<String, Object>) dataSnapshot.getValue();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9197 次 |
| 最近记录: |