![](/img/trans.png)
[英]Firebase: datasnapshot.getValue(className) not working
[英]Firebase: datasnapshot.getValue(className) returning nothing
我試圖使用模型類獲取數據但是徒勞無功。 有很多問題已經被問過,但我想我是按照他們的說法,如果我遺失了什么,請讓我知道..
我想獲取類似這樣的數據..
FirebaseHelper.firebaseDatabase().getReference().child("rooms").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (DataSnapshot roomSnap : dataSnapshot.getChildren()) {
Room room = roomSnap.getValue(Room.class);
//no response
Log.d("createdAt", room.createdAt);
// returns all data in roomSnap
Log.d("roomSnap", roomSnap.toString());
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
但它沒有從數據庫中獲取數據。
數據庫:
房間模型
public class Room implements Parcelable {
private static final String TAG = "Room";
public Room() {
}
public String objectID = "";
public String createdAt = "";
public String updatedAt = "";
public String ACL = "";
public String roomNumber = "";
public String roomStatus = "";
public String roomGuestFirstName = "";
public String roomGuestLastName = "";
public String guestArrival = "";
public String guestDepature = "";
protected Room(Parcel in) {
objectID = in.readString();
createdAt = in.readString();
updatedAt = in.readString();
ACL = in.readString();
roomNumber = in.readString();
roomStatus = in.readString();
roomGuestFirstName = in.readString();
roomGuestLastName = in.readString();
guestArrival = in.readString();
guestDepature = in.readString();
}
public static final Creator<Room> CREATOR = new Creator<Room>() {
@Override
public Room createFromParcel(Parcel in) {
return new Room(in);
}
@Override
public Room[] newArray(int size) {
return new Room[size];
}
};
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(objectID);
dest.writeString(createdAt);
dest.writeString(updatedAt);
dest.writeString(ACL);
dest.writeString(roomNumber);
dest.writeString(roomStatus);
dest.writeString(roomGuestFirstName);
dest.writeString(roomGuestLastName);
dest.writeString(guestArrival);
dest.writeString(guestDepature);
}
}
我正在使用同一個類創建空間,並且工作正常,只是我在數據檢索中遇到問題。 即使logcat中沒有錯誤也沒有,
我認為您的代碼的問題在於您沒有將檢索到的數據設置為列表或回收站視圖(您用於顯示數據的任何內容),如果這樣做無助於嘗試設置您的addvalue事件監聽器,如下所示碼。 我希望這能幫到您。
DatabaseReference ref = database.getReference().child("buddy_plans");
ref.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
Buddy buddy = dataSnapshot.getValue(Buddy.class);
listBuddy.add(buddy);
buddyAdapter.notifyDataSetChanged();
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.