【发布时间】:2018-09-15 17:26:12
【问题描述】:
我正在尝试在调用 sendEmailVerification() 方法时将对象插入到 firebase 数据库中。
注意:我在创建新用户帐户后调用了 sendEmailVerification()。
RegistrationModel 是我的模型类。
sendEmailVerification 代码:
final FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
user.sendEmailVerification()
.addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()) {
// email sent
String userId = savePref.getUid();
registrationModel = new RegistrationModel();
registrationModel.setStatus(ONLINE_STATUS);
registrationModel.setName("");
registrationModel.setPassword(passwordFromRegister);
registrationModel.setKey("");
registrationModel.setEmailId(user.getEmail());
registrationModel.setGenerated_links("");
registrationModel.setNO_OF_GENERATED_LINK(NO_OF_GENERATED_LINK);
registrationModel.setNO_OF_CHATING_PERMISSION(NO_OF_CHATING_PERMISSION);
FirebaseDatabase.getInstance().getReference().child("RegistrationModel")
.child(userId).setValue(registrationModel);
}
}
});
我搜索了很多,但没有找到任何解决方案!
注意我收到此警告setValue at /RegistrationModel/KxvrHcEQXdRnV45XqZecUDtUX8c2 failed: DatabaseError: Permission denied
【问题讨论】:
-
你确定userId被填了吗?
-
另外,我们可以看看您的 RegistrationModel 吗?
-
将运行您的代码,1 秒
-
我运行了一个类似的代码,它正在保存到数据库中,问题不在于 firebase。我建议您在 setValue 方法中添加一个完成侦听器并检查它是否返回 DatabaseError
-
检查您的 logcat 输出是否有来自数据库的警告和错误。例如:用户是否对您尝试写入的位置具有权限?
标签: android firebase firebase-realtime-database firebase-authentication firebase-cloud-messaging