如何解决使用 flutter_google_places 自动完成搜索不起作用?
我正在开发我的第一个更复杂的项目,类似于优步应用的想法。
我按照此问题中的说明进行操作 autocomplete with flutter
但是当我尝试搜索地址时,什么也没有出现
我使用 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 请求都会导致错误,如下图所示
我看到一些论坛说我必须将项目与结算帐户链接,我做到了,但问题仍然存在
如果有人可以帮助我,在此先感谢您
解决方法
我发现了问题。
我的 Api 密钥仅限于“Android 应用”
但是,对 Api Places Google 的访问是通过 HTTP 请求完成的。
由于我的密钥受到限制,我所有的请求都导致“访问被拒绝”。
有必要更改我的 API 密钥的限制,如下图所示:
请记住,更改为“none”对您的应用程序来说并不安全,但在此示例中它只是一个测试应用程序,所以没问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。