gpt4 book ai didi

firebase - 身份验证成功后,Flutter Firebase 数据库权限被拒绝

转载 作者:IT王子 更新时间:2023-10-29 06:41:44 25 4
gpt4 key购买 nike

将 Flutter 与插件 firebase_auth 和 firebase_database 结合使用。使用电子邮件和密码进行身份验证。这是用于身份验证和处理身份验证更改事件的代码摘录。验证成功后,代码将用户信息插入实时数据库。如果数据库规则设置为读/写真,则一切正常。但是,使用标准数据库写入规则 (auth != null),应用会抛出 DatabaseError: Permission denied。看来数据库插件不知道经过身份验证的身份?有什么想法吗?

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
});
}
});
}
});

我已经写过规则是标准的,但由于安德烈要求将它们包括在这里,所以它们是:这些是一切正常时的规则:

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

这些是导致“权限被拒绝”的规则:

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

最佳答案

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

关于firebase - 身份验证成功后,Flutter Firebase 数据库权限被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49245019/

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