我的Android版本的應用程序出現了一些問題。我完成了iOS版本,並且正在開發Android數據部分。之後我得到了雨燕的快照,我可以簡單地說是這樣的:通讀Firebase快照 - Android
myList.addObject((snapshot.value["num"] as? String)!)
然後,我有我需要的數字的一個不錯的清單。
到目前爲止,Android並不那麼簡單。這是我的數據結構和我在找什麼。
staffNUM
--staff
--12345677
-- num:112234
--2345689
-- num:090909
--44445677
-- num:999234
--6665689
-- num:888673
由於iOS應用程序已被使用,所以無法更改數據的創建方式。
這裏有一個問題:
我有我的數據庫,它工作的參考。
mDatabase = FirebaseDatabase.getInstance().getReference();
這裏是我打電話數據庫後:
mDatabase.child("staffNUM/staff").addListenerForSingleValueEvent(
new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.getValue() != null) {
Log.d("Snap", "" + dataSnapshot.getValue());
StaffNum staffNum = dataSnapshot.getValue(StaffNum.class);
} else {
// something else happens
}
我的快照結果是:
d /快:{員工= {12345677 = {NUM = 112234},{2345689 = {NUM = 090909},{2345689 = {NUM = 090909},{44445677 = {NUM = 999234},{6665689 = {NUM = 888673}}
解析數據的最佳方式是什麼?我只需要像我在Swift中那樣在應用程序中使用的列表。
編輯:
這裏是我添加
@IgnoreExtraProperties
public class StaffNum {
public String num
public StaffNUM() {}
public StaffNUM(String num) {
this.num = num;
}
@Exclude
public Map<String, Object> toMap() {
HashMap<String, Object> result = new HashMap<>();
result.put("num", num);
return results;
}
}
如果我請Log.d( 「民:」 「」 + staffNUM.num)類; 我仍然得到
d/NUM ::空
需要定義你的數據POJO的字段創建一個POJO的工作人員解析。一旦您定義了與您的數據匹配的Pojo類,只需執行以下這行:Staff staff = snapshot.getValue(Staff.class);'。參考 - https://www.firebase.com/docs/android/guide/retrieving-data.html – sha
@sha我更新了當前的問題。我已經將您的答案植入,但第一次嘗試時卻沒有奏效。任何其他想法? –