使用 flutter_google_places 自动完成搜索不起作用?

问题描述

我正在开发我的第一个更复杂的项目,类似于优步应用的想法。

我按照此问题中的说明进行操作 autocomplete with flutter

但是当我尝试搜索地址时,什么也没有出现

Image 1

我使用 GetX 进行状态管理

这是我的代码, 在视图中:

child: TextField(
                onTap: () async {
                  Prediction p = await PlacesAutocomplete.show(
                      context: Get.context,apiKey: "my_apikey_is_here",language: "pt",components: [Component(Component.country,"br")],mode: Mode.overlay);
                  controller.displayPrediction(p);
                },controller: _controllerDestino,decoration: InputDecoration(
                    icon: Container(
                      margin: EdgeInsets.only(left: 10),child: Icon(
                        Icons.local_taxi,color: Colors.black,),hintText: "Digite o destino",border: InputBorder.none),)

控制器中的方法和语句:

static const kGoogleApiKey = "my_ApiKey_isHere";
GoogleMapsPlaces places = GoogleMapsPlaces(apiKey: kGoogleApiKey);



Future<Null> displayPrediction(Prediction p) async {
if (p != null) {
  PlacesDetailsResponse detail =
      await places.getDetailsByPlaceId(p.placeId);

  var placeId = p.placeId;
  double lat = detail.result.geometry.location.lat;
  double lng = detail.result.geometry.location.lng;

  var address = await Geocoder.local.findAddressesFromQuery(p.description);
  print(lat);
  print(lng);
  update();
}

}

在 Google Cloud Platform 上,我 100% 的 Api Places 请求都会导致错误,如下图所示

Google Cloud Platform

我看到一些论坛说我必须将项目与结算帐户链接,我做到了,但问题仍然存在

如果有人可以帮助我,在此先感谢您

解决方法

我发现了问题。

我的 Api 密钥仅限于“Android 应用”

但是,对 Api Places Google 的访问是通过 HTTP 请求完成的。

由于我的密钥受到限制,我所有的请求都导致“访问被拒绝”。

有必要更改我的 API 密钥的限制,如下图所示:

enter image description here

请记住,更改为“none”对您的应用程序来说并不安全,但在此示例中它只是一个测试应用程序,所以没问题。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...