我正在尝试在调用sendEmailVerification()方法时将对象插入firebase数据库。
注意:我在创建新用户帐户后调用了sendEmailVerification()。
RegistrationModel是我的Model类。
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
答案 0 :(得分:1)
public Task<Void> sendEmailVerification (ActionCodeSettings actionCodeSettings)
为用户启动电子邮件验证。接受ActionCodeSettings以允许链接回电子邮件中的应用程序。
返回一个
Task
跟踪发送操作的完成情况。
当任务完成时,电子邮件已发送。这并不意味着用户已经点击验证他们的电子邮件地址,也不表示他们已经过身份验证。
我不确定它发生在哪里,但看起来您的身份验证状态正在丢失之间:
final FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
和
FirebaseDatabase.getInstance().getReference().child("RegistrationModel")
.child(userId).setValue(registrationModel);