Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flatter:firebase_auth似乎不起作用,我如何授权?_Firebase_Flutter_Firebase Authentication - Fatal编程技术网

Flatter:firebase_auth似乎不起作用,我如何授权?

Flatter:firebase_auth似乎不起作用,我如何授权?,firebase,flutter,firebase-authentication,Firebase,Flutter,Firebase Authentication,我有一个使用cloud_firestore软件包的Flitter应用程序,它与Android和iOS配合得很好。但我的数据库是“允许读,写:如果是真的”,所以谷歌一直提醒我修复这个不安全的问题。这是我做的: 包括firebase_auth 更改我在firebase上的规则 创建邮件/密码帐户 实现登录过程 将规则更改为“允许写入:if request.auth!=null;” 我想我把一切都做好了。在应用程序中,似乎是这样: print("User ${(await FirebaseAuth

我有一个使用cloud_firestore软件包的Flitter应用程序,它与Android和iOS配合得很好。但我的数据库是“允许读,写:如果是真的”,所以谷歌一直提醒我修复这个不安全的问题。这是我做的:

  • 包括firebase_auth
  • 更改我在firebase上的规则
  • 创建邮件/密码帐户
  • 实现登录过程
  • 将规则更改为“允许写入:if request.auth!=null;”
我想我把一切都做好了。在应用程序中,似乎是这样:

print("User ${(await FirebaseAuth.instance.currentUser()).email})");
这给了我我帐户的邮件。我还有一个onAuthStageChanged听众,我得到了我所期望的。所以我猜登录确实有效

但是,如果我尝试访问数据库,例如使用.setData(),我会得到一个错误

W/Firestore(4411):(19.0.0)[Firestore]:写入在以下位置失败:状态{code=PERMISSION\u DENIED,description=Missing或permissions.,cause=null}

在我看来,auth包似乎没有正确地通知firestore包。在日志中,我看到了

D/FirebaseAuth(5698):通知id令牌侦听器有关用户(…)

我期望类似“Firestore:已接收令牌…”的内容,但这并没有出现

我必须小心初始化顺序吗?我的是

  • _app=等待Firebase.app.configure
  • _firestore=firestore(应用程序:_应用程序)
  • 等待FirebaseAuth.instance.Signin,使用Email和Password
  • 我在三星和OnePlus的安卓8和9设备上试用过


    有人给我任何提示吗?

    我让它运行了!!使用了来自

    在访问数据库时,我使用了一个指向firestore的指针,就像

    static Firestore _firestore;
    ...
    _firestore = Firestore(app: ...);
    
    后来我用

    await _firestore.collection(...)...setData(...);
    
    但是Firestore在登录后似乎发生了变化。当我写下:

    await Firestore.instance.collection...setData
    

    有趣

    你能告诉我你是怎么修好firestore的吗?您是否添加了更多规则以仅允许允许用户?那些规则可能会拒绝你的请求?你们可能想粘贴这些规则来更好地理解这个问题。你们能发布一些代码吗?这些是我的firebase规则。为了测试,我在“write”变量之间切换:service cloud.firestore{match/databases/{database}/documents{match/deviceinfo/{infos}{allow read:if true;//allow write:if true;allow write:if request.auth!=null;}match/hardware/{hardware}{allow read:if true;allow write:if true;//allow write:if request.auth!=null;}}