如何将数据添加到实时数据库?
Posted
技术标签:
【中文标题】如何将数据添加到实时数据库?【英文标题】:How to add data to Realtime Database? 【发布时间】:2021-12-31 01:22:37 【问题描述】:我只是想创建一个包含一些数据的帐户。不幸的是,我不知道错误在哪里,并且在注册过程中创建了帐户但数据没有保存在实时数据库中。
mAuth.createUserWithEmailAndPassword(email, password).addOnCompleteListener(task ->
if (task.isSuccessful())
FirebaseUser user = mAuth.getCurrentUser();
reference = FirebaseDatabase.getInstance().getReference("Users").child(user.getUid());
HashMap<String, Object> hashMap = new HashMap<>();
hashMap.put("username", username);
hashMap.put("email", email);
hashMap.put("id", user.getUid());
hashMap.put("imageURL", "default");
hashMap.put("status", "offline");
reference.setValue(hashMap).addOnCompleteListener(task1 ->
if (task1.isSuccessful())
Toast.makeText(RegisterActivity.this, "Registered Successfully", Toast.LENGTH_SHORT).show();
startActivity(new Intent(RegisterActivity.this, StartActivity.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK));
else
Toast.makeText(RegisterActivity.this, "Registered Failed", Toast.LENGTH_SHORT).show();
);
);
【问题讨论】:
【参考方案1】:当Task
失败时,其中会有一个异常,其中包含有关失败原因的详细信息。记录异常以查找问题的根本原因:
reference.setValue(hashMap).addOnCompleteListener(task1 ->
if (task1.isSuccessful())
Toast.makeText(RegisterActivity.this, "Registered Successfully", Toast.LENGTH_SHORT).show();
startActivity(new Intent(RegisterActivity.this, StartActivity.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK));
else
Toast.makeText(RegisterActivity.this, "Registered Failed", Toast.LENGTH_SHORT).show();
Log.e("FIREBASE", "Registering user in database failed", task.getException()); // ?
);
一旦您收到异常,请尝试解决它所说的内容,或搜索错误消息以查看其他人之前是否遇到过同样的问题。
【讨论】:
在这种情况下,您可能需要检查应用程序的 logcat 输出以获取相关消息。例如:***.com/questions/68806876/…。如果情况并非如此,enabling debug logging 可能会让您了解更多问题的原因。 谢谢,对我帮助很大以上是关于如何将数据添加到实时数据库?的主要内容,如果未能解决你的问题,请参考以下文章
如何将实时语音添加到 Microsoft bot 框架的文本数据(正是 google 语音所做的)
Firebase 实时数据库未更新 // 数据未添加到 Firebase 实时数据库
成功注册电子邮件和密码后,我可以自动将电子邮件添加到实时数据库吗?
为啥在使用 kotlin 将数据添加到 firebase 实时数据库时会得到重复值?