私はアンドロイドアプリケーション用にFirebaseを使用してデータベースを実装しています。 User.class
とAddress.class
、アプリで使用して::私は2つの豆提示DataSnapshotからオブジェクトを取得する際のエラー
ので
@IgnoreExtraProperties
public class User {
@Exclude
private String idAccount;
private String firstname;
private String lastname;
private String pseudo;
private Address address;
private List<Qualification> qualification;
private boolean isWorker;
// Constructors + getters + setters
}
と
public class Address {
private String houseNumber;
private String street;
private String city;
private String zip;
private String country;
// Constructors + getters + setters
}
を、私はusersRef
が私であるusersRef.child(idUser).setValue(user)
でデータベースにユーザを追加することができますデータベース内のユーザーの参照(See result)
また、でユーザーを取得することもできます:
Query query = usersRef.child(idUser);
query.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
User user = dataSnapshot.getValue(User.class);
result.call(user);
}
@Override
public void onCancelled(DatabaseError databaseError) {
throw databaseError.toException();
}
});
だから、今すべてが動作しているために!
usersRef.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
User user = dataSnapshot.getValue(User.class); // crash here
}
}
...
}
致命的な例外:PID:29470 com.google.firebase.database.DatabaseException:
しかし、私は私の
usersRef
にChildEventListener
を置くしようとした場合、私はクラッシュを持つことができます」 t java.lang.String型のオブジェクト をca.uqac.sosdoit.data.Addressと入力すると、 com.google.android.gms.internal.zzear.zzb(不明な情報源) (com.google.android.gms) .internal.zzear.zza(不明な情報源) com.google.android.gms.internal.zzear.zzb(不明な情報源) com.google.android.gms.internal.zzeas.zze(不明な情報源) com.google.android.gms.internal.zzear .zzb(不明な情報源) com.google.android.gms.internal.zzear.zza(不明な情報源) com.google.firebase.database.DataSnapshot.getValue(不明な情報源) ca.uqac.sosdoit .database.DatabaseManager $ 1.onChildAdded(DatabaseManager.java:68) com.google.android.gms.internal.zzdri.zza(不明な情報源) com.google.android.gms.internal.zzdwu.zzbvb(不明ソース) 、com.google.android.gms.internal.zz dxa.run(Unknown Source) (アンドロイド.os.Handler.handleCallback(Handler.java:808) at android.os.Handler.dispatchMessage(Handler.java:103) at android.os.Looper.loop(Looper .java:193) android.app.ActivityThread.main(ActivityThread.java:5292) at java.lang.reflect.Method.invokeNative(ネイティブメソッド) at java.lang.reflect.Method.invoke(Method。 Javaの:515) com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:824) でcom.android.internal.os.ZygoteInit.main(ZygoteInit.java:640) でのDalvikでシステム.NativeSタルト。メイン(ネイティブメソッド)
そして、私は絶対に理由
「Map valueMap =(HashMap )dataSnapshot.getValue();」を使用してデバッグし、アドレスノードを探してみます。 –
xRed