gpt4 book ai didi

android - 如何将 firebase 与读写规则一起使用为 false

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:42:29 24 4
gpt4 key购买 nike

我正在做一个项目,为了学习和构建应用程序,我遵循了一些教程。但是所有这些,他们都将 Firebase 读写规则更改为 true,这是不安全的。例如他们改变了

{
"rules": {
".read": false,
".write": false
}
}

{
"rules": {
".read": true,
".write": true
}
}

这让任何人都可以读取和写入无论如何都不安全的服务器数据。因此我把它变成了 false,现在我无法将用户注册到 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;
}
});
}
});

最佳答案

因此在 Firebase 中有不同的规则,用户注册到数据库取决于这些规则,例如 Firebase 给出了四个规则

默认

默认规则需要 Authentication .它们仅允许对您的应用程序的经过身份验证的用户进行完全读写访问。如果您希望数据对应用的所有用户开放但又不想向全世界开放,它们就很有用

// These rules require authentication
{
"rules": {
".read": "auth != null",
".write": "auth != null"
}
}

公开

在开发过程中,您可以使用公共(public)规则代替默认规则来将您的文件设置为公开可读可写。这对于原型(prototype)设计很有用,因为您无需设置 Authentication 即可开始使用。 .这种访问级别意味着任何人都可以读取或写入您的数据库。在启动您的应用程序之前,您应该配置更安全的规则。

// These rules give anyone, even people who are not users of your app,
// read and write access to your database
{
"rules": {
".read": true,
".write": true
}
}

作为用户

下面是一个规则示例,该规则为每个经过身份验证的用户提供位于/users/$user_id 的个人节点,其中 $user_id 是通过 Authentication 获得的用户 ID。 .对于任何拥有用户私有(private)数据的应用来说,这是一种常见的情况。

// These rules grant access to a node matching the authenticated
// user's ID from the Firebase auth token
{
"rules": {
"users": {
"$uid": {
".read": "$uid === auth.uid",
".write": "$uid === auth.uid"
}
}
}
}

私有(private)私有(private)规则禁用用户对数据库的读写访问。使用这些规则,您只能通过 Firebase 控制台访问数据库。

// These rules don't allow anyone read or write access to your database
{
"rules": {
".read": false,
".write": false
}
}

如果将用户注册到数据库,而读写权限为 false,则只会授予您从 Firebase 控制台编辑和读取数据的权限。

关于android - 如何将 firebase 与读写规则一起使用为 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50565807/

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