public class User {
@SerializedName("username")
private String userName;
@SerializedName("email")
private String email;
@SerializedName("bags")
private List<Bag> bags;
.
.
.
A類和我在我的火力有這個數據DB
之前,我添加了「袋」項目,該對象創建正常,我使用這種方法來檢索用戶的uid:
public void retrieveUserByUid(String uid, FirebaseRetrieveUserListener listener){
Query userQuery = dbReference.child(FirebaseChild.users.name()).child(uid);
final FirebaseRetrieveUserListener dataListener = listener;
userQuery.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
User user = dataSnapshot.getValue(User.class);
dataListener.retrieveUserByUid(user);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
正如我所說,這個工作沒有「袋」項,當我把它,我得到的錯誤是這樣的。
com.google.firebase.database.DatabaseException: Expected a List while deserializing, but got a class java.util.HashMap
發生這種情況時,我嘗試這樣做
User user = dataSnapshot.getValue(User.class);
我搜索了很多關於如何檢索列表,但我覺得是檢索一個列表對象,而不是一個「混合「帶有」單個數據「的對象和一個列表。
我想手動反序列化是在這種情況下,更好的方法。但是你可能會嘗試使用'HashMap'這個袋子屬性。 –