Каков наилучший способ сделать простой пост-запрос из приложения флаттера в firebase? - PullRequest
0 голосов
/ 26 марта 2019

Я пытаюсь сделать простой пост-запрос из приложения флаттера в базу данных 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 голосов
/ 26 марта 2019

Установка разрешений на

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

будет работать.

Однако лучший способ сделать это - аутентифицировать пользователей с помощью пакета Firebase Auth: пакет Firebase_Auth (даже если вы подпишете их анонимно), а затем использовать пакет Firebase_Database: Пакет Firebase_Database для загрузки данных в режиме реального времени.

0 голосов
/ 26 марта 2019

Ответ был прост. Я не знал о разрешениях по умолчанию для баз данных реального времени firebase. Разрешения по умолчанию:

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

Но если я хочу попробовать выполнить http-запрос во время разработки, я могу изменить разрешения на:

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

Вы можете изменить это в разделе базы данных firebase -> rules

Я получил ответ благодаря этому сообщению Отказано в разрешении Firebase

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...