Firebase Firestore API не работает только с Flutter

#flutter

#flutter

Вопрос:

API Firebase Firestore работает не только с Flutter. Я пробовал один и тот же URL-адрес в своем браузере и python, и они работают как шарм. Я не мог понять, почему не работает Flutter.

API_url = https://firestore.googleapis.com/v1beta1/projects/weathersense-daa83/databases/(default)/documents/weather_data/latest_data

Код, который я написал в запросе HTTP get в Flutter

 var response = await http.post(
                  'https://firestore.googleapis.com/v1beta1/projects/weathersense-daa83/databases/(default)/documents/weather_data/latest_data');
              print(response);
              print(response.body);
  

Результат, который я получил

 I/flutter (15665): {
I/flutter (15665):   "error": {
I/flutter (15665):     "code": 400,
I/flutter (15665):     "message": "Document parent name "projects/weathersense-daa83/databases/(default)/documents/weather_data" lacks "/" at index 70.",
I/flutter (15665):     "status": "INVALID_ARGUMENT"
I/flutter (15665):   }
I/flutter (15665): }

  

Тот же URL-адрес в браузере извлекает данные.

 {
  "name": "projects/weathersense-daa83/databases/(default)/documents/weather_data/latest_data",
  "fields": {
    "timestamp": {
      "integerValue": "20201106131503"
    },
    "rain_intensity": {
      "doubleValue": 0
    },
    "wind_speed": {
      "doubleValue": 0
    },
    "hail_duration": {
      "doubleValue": 0
    },
    "humidity": {
      "doubleValue": 57.2
    },
    "supply_voltage": {
      "doubleValue": 13.9
    },
    "rain_accumulation": {
      "doubleValue": 0
    },
    "ref_voltage": {
      "doubleValue": 3.615
    },
    "rain_duration": {
      "doubleValue": 0
    },
    "internal_temp": {
      "doubleValue": 23.6
    },
    "temp": {
      "doubleValue": 23.4
    },
    "pressure": {
      "doubleValue": 1002.6
    }
  },
  "createTime": "2020-10-31T20:15:04.479800Z",
  "updateTime": "2020-11-06T05:15:03.935166Z"
}

  

Комментарии:

1. Используйте GET-запрос, он будет работать.

Ответ №1:

Я думаю, вам следует использовать 'GET' request вместо 'POST' , потому что это то, что делают браузеры.

 var response = await http.get(
                  'https://firestore.googleapis.com/v1beta1/projects/weathersense-daa83/databases/(default)/documents/weather_data/latest_data');
              print(response);
              print(response.body);