gpt4 book ai didi

android - 无法将 JSON 对象插入 Firebase 实时数据库

转载 作者:行者123 更新时间:2023-11-30 00:38:53 26 4
gpt4 key购买 nike

我正在尝试将用户数据存储在我的 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);

}

不幸的是,应用程序在尝试执行最后一行代码(将 map 插入实时数据库)时不断崩溃。有趣的是,当我对要插入的数据进行硬编码而不是使用 userMapuserObject 时,它会起作用。

这是对 Android Monitor 错误的描述:

03-19 08:20:34.937 22378-22378/com.example.jacek.simplyfootball E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.jacek.simplyfootball, PID: 22378 com.google.firebase.database.DatabaseException: No properties to serialize found on class org.json.JSONObject at com.google.android.gms.internal.zzbqi$zza.(Unknown Source) at com.google.android.gms.internal.zzbqi.zzi(Unknown Source) at com.google.android.gms.internal.zzbqi.zzax(Unknown Source) at com.google.android.gms.internal.zzbqi.zzax(Unknown Source) at com.google.android.gms.internal.zzbqi.zzaw(Unknown Source) at com.google.firebase.database.DatabaseReference.zza(Unknown Source) at com.google.firebase.database.DatabaseReference.setValue(Unknown Source) at com.example.jacek.simplyfootball.RegisterActivity.onClickStore(RegisterActivity.java:89) at com.example.jacek.simplyfootball.databinding.ActivityRegisterBinding$OnClickListenerImpl.onClick(ActivityRegisterBinding.java:290) at android.view.View.performClick(View.java:5198) at android.view.View$PerformClick.run(View.java:21147) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5417) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) at 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); 

关于android - 无法将 JSON 对象插入 Firebase 实时数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42885852/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com