私のアプリの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}}
そのデータを解析する最善の方法は何ですか?私はちょうど私がアプリで使用するためにスウィフトで行ったようなリストが必要です。
編集:
ここで私は( "NUM:"、 "" + staffNUM.num)Log.dを呼び出す場合、私は
@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;
}
}
を追加したクラスです。 私はまだ
D/NUM ::
から必要なフィールドを持つスタッフPOJOを作成します。パースします。あなたのデータと一致するPojoクラスを定義したら、この行 'Staff staff = snapshot.getValue(Staff.class);'を実行してください。参考 - https://www.firebase.com/docs/android/guide/retrieving-data.html – sha
@sha最新の問題を更新しました。私はすでにあなたの答えを移植したが、私はそれを試して初めて動作しませんでした。他のアイデア? –