【发布时间】:2018-11-07 00:20:24
【问题描述】:
我正在处理一个项目,我遵循了一些教程来学习和构建应用程序。但是所有这些,他们将 Firebase 读写规则更改为 true,这是不安全的。例如他们改变了
{
"rules": {
".read": false,
".write": false
}
}
到
{
"rules": {
".read": true,
".write": true
}
}
这使任何人都可以读取和写入服务器数据,这在任何情况下都是不安全的。因此我把它变成了假,现在我无法将用户注册到 Firebase,它给出了一个错误,说“权限被拒绝。那么我现在必须做什么才能获得许可。
以前我使用此代码将用户注册到 Firebase,但现在无法正常工作。
mFirebaseAuth.createUserWithEmailAndPassword(editEmail.getText().toString(), editPass.getText().toString()).addOnSuccessListener(new OnSuccessListener<AuthResult>() {
@Override
public void onSuccess(AuthResult authResult) {
//Saving User to Database
User user = new User();
user.setEmail(editEmail.getText().toString());
user.setName(editName.getText().toString());
user.setPassword(editPass.getText().toString());
user.setPhone(editPhone.getText().toString());
users.child(FirebaseAuth.getInstance().getCurrentUser().getUid()).setValue(user).addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
waitingdialog.dismiss();
Snackbar.make(rootLayout, "Registration Successful", Snackbar.LENGTH_SHORT).show();
return;
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
waitingdialog.dismiss();
Snackbar.make(rootLayout, "Registration Failed" + e.getMessage(), Snackbar.LENGTH_LONG).show();
return;
}
});
}
});
【问题讨论】:
-
您的问题到底是什么?你想达到什么目标?
-
您应该阅读User Based Security。它包含有关如何有效保护您的数据用户当前用户凭据的详细示例
-
我已经更新了问题,请再看看。
-
你真的需要阅读他评论中链接到的文档 CodingIntrique,这一切都在那里解释。
标签: android firebase firebase-realtime-database firebase-authentication firebase-security