我试图检查在用户中登录的用户是否是Firebase数据库中JSON数组的授权用户。如何从Firebase获取电子邮件字段的价值? ?无法从Firebase数据库获取数组值
这是模型User
类:
public class User {
ArrayList<User> email;
public User() {}
public ArrayList<User> getEmail() {
return email;
}
public void setEmail(ArrayList<User> email) {
this.email = email;
}
}
对于从userslist
获得email
,我用此逻辑。
usersListDatabaseReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
User userEmail = dataSnapshot.getValue(User.class);
ArrayList<String> userEmailFromDatabase = userEmail.getEmail();
Log.d(TAG, "User email from Database: "+userEmailFromDatabase);
Log.d(TAG, "Logged in User email: " + user.getEmail());
}
但是,当我尝试从数据库中获取电子邮件时,出现以下异常和应用程序崩溃。
com.google.firebase.database.DatabaseException: Can't convert object of type java.util.ArrayList to type com.apvolution.amapp.model.User
如何获得一个“电子邮件from the
userslist field ? How do I loop through the entire
usersList`?
这是我的Firebase控制台中的数据库结构。
amapp-731b2addclose
+ messages
+ version
- userslist
- email
|
| -- 0: "[email protected]"
| -- 1: "[email protected]"
| -- 2: "[email protected]"
| -- 3: "[email protected]"
logcat的细节:
05 - 13 21: 59: 37.418 16387 - 16387/com.apvolution.bcm E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.apvolution.bcm, PID: 16387
com.google.firebase.database.DatabaseException: Can 't convert object of type java.lang.String to type com.apvolution.amapp.model.User
at com.google.android.gms.internal.zzbtg.zze(Unknown Source)
at com.google.android.gms.internal.zzbtg.zzb(Unknown Source)
at com.google.android.gms.internal.zzbtg.zza(Unknown Source)
at com.google.android.gms.internal.zzbtg.zza(Unknown Source)
at com.google.android.gms.internal.zzbtg.zza(Unknown Source)
at com.google.android.gms.internal.zzbtg.zza(Unknown Source)
at com.google.firebase.database.DataSnapshot.getValue(Unknown Source)
at com.apvolution.bcm.MainActivity$3.onDataChange(MainActivity.java: 260)
at com.google.android.gms.internal.zzbpx.zza(Unknown Source)
at com.google.android.gms.internal.zzbqx.zzZT(Unknown Source)
at com.google.android.gms.internal.zzbra$1.run(Unknown Source)
at android.os.Handler.handleCallback(Handler.java: 751)
at android.os.Handler.dispatchMessage(Handler.java: 95)
at android.os.Looper.loop(Looper.java: 154)
at android.app.ActivityThread.main(ActivityThread.java: 6123)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java: 867)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java: 757)
我现在将我的模型类'User'更改为此。我是否使用GenericTypeIndicator来从Firebase存储中提取数据? – Chip
完美。保持我的发布。 –
'Map email = new HashMap <>(); 用户(){ } public Map getEmail(){ return email; '这就是我现在用于'User'模型的东西。是对的吗 ? –
Chip