颤振-关于颤振的Firebase实时数据库-拒绝对“的许可”;啊!=空";用户通过身份验证后

颤振-关于颤振的Firebase实时数据库-拒绝对“的许可”;啊!=空";用户通过身份验证后,firebase,firebase-realtime-database,flutter,Firebase,Firebase Realtime Database,Flutter,在Android上,在用户登录后,我试图从Firebase Realtime Db读取一些数据,但我收到一条“-3,权限被拒绝”消息。我的安全规则是 ".read": "auth != null" 如果我将安全规则更改为 ".read": "true" 然后我可以读取我的数据 在用户登录后,我可以访问我的FirebaseUser,它填充了一个与Firebase身份验证中的uid匹配的uid,因此看起来登录部分是正确的。我登录如下 final FirebaseAuth _aut

在Android上,在用户登录后,我试图从Firebase Realtime Db读取一些数据,但我收到一条“-3,权限被拒绝”消息。我的安全规则是

  ".read": "auth != null"
如果我将安全规则更改为

  ".read": "true"
然后我可以读取我的数据

在用户登录后,我可以访问我的FirebaseUser,它填充了一个与Firebase身份验证中的uid匹配的uid,因此看起来登录部分是正确的。我登录如下

    final FirebaseAuth _auth = FirebaseAuth.instance;
    final GoogleSignIn _googleSignIn = new GoogleSignIn();

    //do auth
    var googleAccount = await _googleSignIn.signIn();
    var googleAuth = await googleAccount.authentication;
    await _auth.signInWithGoogle(
      accessToken: googleAuth.accessToken,
      idToken: googleAuth.idToken,
);
在等待用户成功登录之后,我连接到数据库,如下所示

var firebaseApp = await FirebaseApp.configure(
  name: 'db2',
  options: const FirebaseOptions(
    googleAppID: GoogleSettings.googleAppID,
    apiKey: GoogleSettings.apiKey,
    databaseURL: GoogleSettings.databaseURL,
  ),
);
var db = new FirebaseDatabase(app: firebaseApp);

//get data
var popsicles = new List<String>();
var popsicleRef = db.reference().child('popcicles');
var firebaseApp=wait firebaseApp.configure(
名称:“db2”,
选项:常量FirebaseOptions(
googleAppID:GoogleSettings.googleAppID,
apiKey:GoogleSettings.apiKey,
databaseURL:GoogleSettings.databaseURL,
),
);
var db=新的FirebaseDatabase(应用程序:firebaseApp);
//获取数据
var冰棒=新列表();
var popsicleRef=db.reference().child('popcicles');
var result=等待冰棒ref.once()

使用的插件(所有最新版本均为2018年5月31日)

  • 颤振版本为0.4.4
  • 谷歌登录:3.0.2
  • firebase_认证:0.5.10
  • firebase_数据库:1.0.0
  • firebase_核心:0.2.3
编辑-添加要点 这里是问题的要点(我在这里读取数据而不是编写,我的安全规则在页面顶部)


我不确定我哪里出错了?我是否需要将我的FirebaseApp或FirebaseDatabase与我的FirebaseUser链接

还可以包括身份验证代码和数据库结构吗?还有完整的规则请(可能他们在错误的地方)我已经在一个要点中重新创建了这个问题(经过测试,我得到了相同的权限拒绝错误)。我还包括了数据库结构和规则。谢天谢地,任何想法都很好,要么我做错了什么,要么插件中有漏洞……我的钱在我身上;-)我得到了同样的信息,但所有的工作从来没有减少。我可以从数据库中读写。我有同样的问题,从那以后我就没有再讨论过这个问题,到目前为止还没有答案,所以我希望有人知道这个问题是什么