Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.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
Flutter 如何在Flatter中通过HTTP Post请求将AuthPayload发送到Firebase实时数据库_Flutter_Firebase Realtime Database - Fatal编程技术网

Flutter 如何在Flatter中通过HTTP Post请求将AuthPayload发送到Firebase实时数据库

Flutter 如何在Flatter中通过HTTP Post请求将AuthPayload发送到Firebase实时数据库,flutter,firebase-realtime-database,Flutter,Firebase Realtime Database,我已经构建了我的应用程序,通过http.post请求将数据发送到Firebase RealtimeDB,在我添加读写规则之前,一切都很正常,顺便说一句,这些规则并不复杂: { "rules": { ".read" : false, ".write" : false, "client":{ "$uid":{ ".read"

我已经构建了我的应用程序,通过http.post请求将数据发送到Firebase RealtimeDB,在我添加读写规则之前,一切都很正常,顺便说一句,这些规则并不复杂:

{
  "rules": {
    ".read"  : false,
    ".write" : false,

    "client":{
      "$uid":{
        ".read": "auth.uid === $uid",
        ".write": "auth.uid === $uid"
      }
    }
  }
}
请求的代码如下所示:

createClient (ClientModel client) async{

    final userData = new SavedUserData();

    final url = '$_dbUrl/cliente/${userData.uid}.json?auth=${userData.uid}';

    final resp = await http.post(url, body: clientModelToJson(client));
我得到一个解析错误,我得到它,auth没有发送.json文件,但是:

  • auth={“uid”:“myUsersUid”}
  • auth=“{”uid”:“myUsersUid”}
  • 使用{“uid”:“myUsersUid”}编码映射并将其附加到url
好像是在耍花招


我几乎可以肯定我犯了一个巨大的新手错误,但我似乎看不出在哪里。提前感谢您的时间

不可能向实时数据库REST API发送任意UID。这实际上是一个相当大的安全漏洞——它允许任何有互联网连接的人冒充只知道UID的注册用户

为了了解auth如何与RTDB一起工作,请从。传递身份验证令牌有两个选项:

通过以下方法之一对用户进行身份验证:

  • Google OAuth2访问令牌-通常,实时数据库的读写能力由实时数据库控制 规则。但是,您可以从服务器访问数据并授予该权限 使用Google OAuth2对您的数据进行服务器完全读写访问 从服务帐户生成的访问令牌

  • Firebase ID令牌-您可能还希望发送作为单个用户进行身份验证的请求,例如使用 客户端SDK上的实时数据库规则。restapi接受 与客户端SDK使用的Firebase ID令牌相同


您需要传递一个ID令牌(而不是UID),该令牌只能通过最终用户帐户成功登录获得。您可以了解有关ID代币的更多信息。

我第一次阅读该文档时就搞错了,谢谢您的时间!