验证成功后,Flatter Firebase数据库权限被拒绝
与firebase_auth和firebase_数据库插件一起使用flifter。 使用电子邮件和密码进行身份验证。 这是用于身份验证和处理身份验证更改事件的代码提取。验证成功后,代码将用户信息插入实时数据库。如果数据库规则设置为读/写真,则一切正常。但是,使用标准数据库写入规则(auth!=null),应用程序抛出DatabaseError:权限被拒绝。 数据库插件似乎不知道经过身份验证的身份? 你知道怎么了吗验证成功后,Flatter Firebase数据库权限被拒绝,firebase,firebase-realtime-database,dart,firebase-authentication,flutter,Firebase,Firebase Realtime Database,Dart,Firebase Authentication,Flutter,与firebase_auth和firebase_数据库插件一起使用flifter。 使用电子邮件和密码进行身份验证。 这是用于身份验证和处理身份验证更改事件的代码提取。验证成功后,代码将用户信息插入实时数据库。如果数据库规则设置为读/写真,则一切正常。但是,使用标准数据库写入规则(auth!=null),应用程序抛出DatabaseError:权限被拒绝。 数据库插件似乎不知道经过身份验证的身份? 你知道怎么了吗 FirebaseAuth _auth = FirebaseAuth.instanc
FirebaseAuth _auth = FirebaseAuth.instance;
user = await _auth.signInWithEmailAndPassword(
email: _emailC.text,
password: _passC.text
);
然后:
以下是导致“权限被拒绝”的规则:
当我发现这个问题只出现在IOS上时,我想一定是我的配置出了问题,就是这样。
根据此视频正确导入GoogleService-Info.plist后:效果很好。您还可以在问题中添加firebase规则吗?您好,这是您第一次在Android上使用吗?在Android上,我有一个经过身份验证的用户,可以从一个不受限制的Firebase数据库读取数据。如果我添加规则来限制仅对经过身份验证的用户的访问(“.read”:“auth!=null”),则我无法读取数据。我是否需要专门将经过身份验证的用户链接到实例化的firebase数据库?谢谢,只要android/app/src中有google-services.json,你就不必做任何特殊的事情。还要检查它是否包含api#键条目:“api#键”:[{“当前#键”:“######”}]。出于某种原因,我不得不手动将其添加到我的google-services.json中。
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"
}
}