【发布时间】:2019-12-16 00:27:30
【问题描述】:
我正在制作一个连接到 Firebase 的 Android 应用,并在其中使用实时数据库。
问题是我在模拟器上安装的应用程序在用户登录后不断崩溃。
我认为这是一个与应用程序无法从数据库中检索用户数据有关的问题。我检查了 Firebase 文档,但没有任何帮助。我所有的 Gradle 文件都已正确设置和同步。我真的被卡住了,不知道该怎么办。
请帮助我,我将不胜感激。
PS 这是应用崩溃时 Android Studio 在 RUN SECTION 中显示的内容
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.e.youdemo, PID: 26450
com.google.firebase.database.DatabaseException: No properties to serialize found on class com.e.youdemo.UserProfile
at com.google.firebase.database.core.utilities.encoding.CustomClassMapper$BeanMapper.<init>(com.google.firebase:firebase-database@@17.0.0:530)
at com.google.firebase.database.core.utilities.encoding.CustomClassMapper.loadOrCreateBeanMapperForClass(com.google.firebase:firebase-database@@17.0.0:312)
at com.google.firebase.database.core.utilities.encoding.CustomClassMapper.convertBean(com.google.firebase:firebase-database@@17.0.0:413)
at com.google.firebase.database.core.utilities.encoding.CustomClassMapper.deserializeToClass(com.google.firebase:firebase-database@@17.0.0:214)
at com.google.firebase.database.core.utilities.encoding.CustomClassMapper.convertToCustomClass(com.google.firebase:firebase-database@@17.0.0:79)
at com.google.firebase.database.DataSnapshot.getValue(com.google.firebase:firebase-database@@17.0.0:212)
at com.e.youdemo.Menu$1.onDataChange(Menu.java:91)
at com.google.firebase.database.core.ValueEventRegistration.fireEvent(com.google.firebase:firebase-database@@17.0.0:75)
at com.google.firebase.database.core.view.DataEvent.fire(com.google.firebase:firebase-database@@17.0.0:63)
at com.google.firebase.database.core.view.EventRaiser$1.run(com.google.firebase:firebase-database@@17.0.0:55)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6669)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
编辑
这是从日志中报告的“菜单活动”第 91 行开始的方法
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
UserProfile userProfile = dataSnapshot.getValue (UserProfile.class);
CurrentUserName.setText (Objects.requireNonNull (userProfile).getName ());
CurrentUserAge.setText (MessageFormat.format ("{0} anni", userProfile.getAge ()));
CurrentUserGender.setText (userProfile.getGender ());
CurrentUserWeight.setText (MessageFormat.format ("{0} kg", userProfile.getWeight ()));
CurrentUserHeight.setText (MessageFormat.format ("{0} cm", userProfile.getHeight ()));
}
编辑
package com.e.youdemo;
import java.io.Serializable;
public class UserProfile implements Serializable {
private String Name;
private String Age;
private String Gender;
private String Weight;
private String Height;
public UserProfile () {}
UserProfile(String Name, String Age, String Gender, String Weight, String Height) {
this.Name = Name;
this.Age = Age;
this.Gender = Gender;
this.Weight = Weight;
this.Height = Height;
}
String getName() {
return Name;
}
String getAge() {
return Age;
}
String getGender() {
return Gender;
}
String getWeight() {
return Weight;
}
String getHeight() {
return Height;
}
void setName(String name) {
Name = name;
}
void setAge(String age) {
Age = age;
}
void setGender(String gender) {
Gender = gender;
}
void setWeight(String weight) {
Weight = weight;
}
void setHeight(String height) {
Height = height;
}
}
【问题讨论】:
-
欢迎堆栈溢出。为了让人们能够帮助您,您确实需要共享您的代码。请编辑您的问题,也许看看how to ask a question。
-
请添加你
UserProfile的内容。也请回复@AlexMamo -
在下一个编辑中有 UserProfile 类的全部代码,谢谢@AlexMamo
-
请添加 FirebaseDatabase userProfile 节点数据
-
请将您的数据库结构添加为 JSON 文件或至少作为屏幕截图。
标签: android firebase firebase-realtime-database