当前位置: 首页 > 知识库问答 >
问题:

验证成功后 Flutter Firebase 数据库权限被拒绝

拓拔嘉运
2023-03-14

与firebase_ auth和firebase_。使用电子邮件和密码进行身份验证。这是用于身份验证和处理身份验证更改事件的代码提取。验证成功后,代码将用户信息插入实时数据库。如果数据库规则设置为读/写真,则一切正常。但是,使用标准数据库写入规则(auth!=null),应用程序抛出DatabaseError:权限被拒绝。数据库插件似乎不知道经过身份验证的身份?你知道怎么回事吗?

FirebaseAuth _auth = FirebaseAuth.instance;

user = await _auth.signInWithEmailAndPassword(
  email: _emailC.text,
  password: _passC.text
);

然后:

FirebaseAuth _auth = FirebaseAuth.instance;
StreamSubscription<FirebaseUser> _userChangeEvent;
DatabaseReference _usersDbRef = database.reference().child('users');

_userChangeEvent = _auth.onAuthStateChanged.listen((user) {
  setState(() {
    _isAuthenticated = user != null && user.isEmailVerified;
  });
  if (_isAuthenticated && _usersDbRef != null) {
    _usersDbRef.child(user.uid).once().then((
        DataSnapshot data) {
      if (data.value == null) {
        _usersDbRef.child(user.uid).set({
          'id': user.uid,
          'email': user.email,
          'display_name': user.displayName
        });
      }
    });
  }
});

我已经写了规则是标准的,但是既然Andre要求在这里包含它们,它们就是:当一切正常时,这些是规则:

{
  "rules": {
    ".read": "true || auth != null",
    ".write": "true || auth != null"
  }
}

以下是导致“权限被拒绝”的规则:

{
  "rules": {
    ".read": "auth != null",
    ".write": "auth != null"
  }
}

共有1个答案

邹弘
2023-03-14

在我发现这个问题只出在IOS上之后,我想一定是我的配置出了问题,就这样。根据这个视频正确导入GoogleService-Info.plist后:https://youtu.be/3nFIMej3Tvw它工作正常。

 类似资料:
  • 我正试图按照Firebase的在线指南使用Firebase实时数据库,但由于我的许可被拒绝,我无法获得数据库的任何更新。我不确定我做错了什么。我甚至设定了阅读和写作的规则。 onClickListener内的代码如下: 这是在片段中,按钮在开始片段替换事务之前首先完成这些语句。 以下是Firebase中的规则: 由于我不熟悉JSON,我也尝试过在“.write”结尾加逗号 这是stacktrace

  • 下面是我运行的输出 正如上面的行显示的这意味着我已经不受诱惑了,但为什么我不能克隆我的repo呢? 更新:我可以在我的主目录中克隆,但是当我尝试使用sudo时,它没有工作,它发生在我的/var/www/html/文件夹中

  • 我正在尝试使用 PHP 制作日期日志文件。我正在Macbook上的xampp上运行它。它一直说许可被拒绝。我该如何解决这个问题? 我收到的错误是: 警告: fopen(星期五-01-四月-16.txt): 无法打开流: 权限被拒绝 /Applications/XAMPP/xamppfiles/htdocs/aowigman/index.php 在第 6 行无法打开文件! 代码: 先谢谢!

  • https://learn.hashicorp.com/vault/gett-starting/apis

  • 问题内容: 我正在尝试使用以下脚本连接数据库(cxn-test.php) 当我在终端上尝试时 php cxn-test.php //成功 但是当我尝试在本地主机上时,出现以下错误, curl -s http://localhost/cxn-test.php 这是一个奇怪的问题,它无法在localhost上运行,但在命令行上运行良好。 问题答案: 在获得运行SELinux的新CentOS 7盒后,我

  • 问题内容: 我有一个django 1.4应用,本地开发服务器中有一个填充的postgres 9.1数据库。成功部署后,我想将数据从本地数据库移到在线数据库,所以我使用了: 然后使用以下命令在服务器上还原: 现在尝试在线登录到网站管理员会引发“关系django_session的权限被拒绝”异常。我尝试使用/不使用-Ox开关及其所有组合来转储数据,但是没有成功。我还将删除数据库,并使用settings