我正在尝试将用户数据存储在我的 Firebase 数据库中。这是我处理 onClick 并将数据发送到数据库的代码:
public void onClickStore(final View view)
{
String name = binding.getUser().name.get();
String email = binding.getUser().email.get();
DatabaseReference rootDb = FirebaseDatabase.getInstance().getReference();
DatabaseReference usersDatabase = rootDb.child("Users");
Map<String, JSONObject> userMap= new HashMap<>();
JSONObject userObject = new JSONObject();
try
{
userObject.put("Name", name);
userObject.put("Email", email);
}
catch (JSONException e)
{
e.printStackTrace();
}
userMap.put("User_01", userObject);
usersDatabase.setValue(userMap);
}
不幸的是,应用程序在尝试执行最后一行代码(将地图插入实时数据库)时不断崩溃。有趣的是,当我对要插入的数据进行硬编码但不使用其中任何一个时,它会起作用userMap
or userObject
.
这是 Android Monitor 的错误描述:
03-19 08:20:34.937 22378-22378/com.example.jacek.simplyfootball
E/AndroidRuntime:致命异常:main
进程:com.example.jacek.simplyfootball,PID:22378
com.google.firebase.database.DatabaseException:没有属性
在类 org.json.JSONObject 上找到序列化
在 com.google.android.gms.internal.zzbqi$zza。(来源不明)
在 com.google.android.gms.internal.zzbqi.zzi(来源未知)
在 com.google.android.gms.internal.zzbqi.zzax(来源未知)
在 com.google.android.gms.internal.zzbqi.zzax(来源未知)
在 com.google.android.gms.internal.zzbqi.zzaw(来源未知)
在 com.google.firebase.database.DatabaseReference.zza(来源未知)
在 com.google.firebase.database.DatabaseReference.setValue(未知
来源)
在
com.example.jacek.simplyfootball.RegisterActivity.onClickStore(RegisterActivity.java:89)
在
com.example.jacek.simplyfootball.databinding.ActivityRegisterBinding$OnClickListenerImpl.onClick(ActivityRegisterBinding.java:290)
在 android.view.View.performClick(View.java:5198)
在 android.view.View$PerformClick.run(View.java:21147)
在 android.os.Handler.handleCallback(Handler.java:739)
在 android.os.Handler.dispatchMessage(Handler.java:95)
在 android.os.Looper.loop(Looper.java:148)
在 android.app.ActivityThread.main(ActivityThread.java:5417)
在 java.lang.reflect.Method.invoke(本机方法)
在
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
我们将非常感谢您的帮助。
谢谢
我不明白你真正想做什么但是..
代替
JSONObject userObject = new JSONObject();
您可以在用户上创建模型
public class Usermodel {
String Name,Email;
public Usermodel(String name, String email) {
Name = name;
Email = email;
}
public Usermodel() {
}
public String getName() {
return Name;
}
public void setName(String name) {
Name = name;
}
public String getEmail() {
return Email;
}
public void setEmail(String email) {
Email = email;
}
}
并创建新对象
Usermodel model = new Usermodel();
model.setname("");
model.setEmail("");
并继续你的代码
如果您需要,Firebase 将创建它的主键
YourFirebaseRef.child("users").push().setValue(model);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)