从flutter应用程序到Firebase进行简单发布请求的最佳方法是什么?

时间:2019-03-26 15:21:20

标签: http firebase-realtime-database flutter

我正在尝试从flutter应用程序向Firebase数据库执行简单的发布请求。 这是我的代码:

child: RaisedButton(
  child:Text('A firebase'),
  textColor: Colors.blueGrey,
  onPressed: () {
    var url = "https://gip-reports.firebaseio.com/reporte.json";
    http.post(url, body: {"name": "doodle", "color": "blue"})
      .then((response) {
         print("Response status: ${response.statusCode}");
         print("Response body: ${response.body}");
       });
  },
),

问题是,当我使用此代码时,cmd显示此错误:

I/flutter (16602): Response status: 401
I/flutter (16602): Response body: {
I/flutter (16602):   "error" : "Permission denied"
I/flutter (16602): }

如何让我的应用发布到Firebase?

2 个答案:

答案 0 :(得分:0)

答案很简单。我不了解Firebase实时数据库的默认版本。默认权限为:

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

但是,如果我想在开发期间尝试执行http请求,可以将权限更改为:

{
  "rules": {
    ".read": true,
    ".write": true
  }
}

您可以在firebase的“数据库”部分->规则中更改

感谢这篇帖子Firebase Permission Denied

答案 1 :(得分:0)

设置权限

{
  "rules": {
    ".read": true,
    ".write": true
  }
}

会工作。

不过,最好的方法是使用Firebase Auth软件包对用户进行身份验证:Firebase_Auth package(即使您以匿名方式登录),然后使用Firebase_Database软件包:Firebase_Database Package实时加载数据。