Flutter应用集成Google Places API后无法加载搜索建议问题问询
问题解答
1. Google Places API 计费要求
使用Google Cloud Platform的Places API必须绑定有效的支付/计费账户才能正常调用。即使你还在免费额度使用范围内,Google也要求完成支付账户绑定验证,否则API请求会被直接拦截返回错误,不会返回搜索结果数据。
这是你目前加载结束后无搜索建议显示的最常见诱因。
2. 无搜索结果的其他排查方案
从你提供的代码来看,现有逻辑缺少错误捕获环节,API请求失败时会直接返回空列表进入加载完成状态,所以不会显示错误提示,只会看到加载指示器消失后无内容:
- 先给你的
PlacesRepo中getAutoComplete方法添加日志打印,查看API返回的原始数据,确认是否为403权限错误、空数据或者其他报错 - 补充Bloc的异常捕获逻辑,修改
_mapLoadAutoCompleteToState方法如下:
Stream<AutoCompleteState> _mapLoadAutoCompleteToState(LoadAutoComplete event) async* { _placesSubscription?.cancel(); try { final List<PlacesAutoComplete> autocomplete = await _placesRepo.getAutoComplete(event.searchInput); yield AutoCompleteLoaded(autocomplete: autocomplete); } catch (e) { yield AutoCompleteError(); } }
- 确认你GCP控制台的配置:
- 项目已经启用Places API,而非仅启用地图相关SDK
- 使用的API Key已经开通Places API调用权限
- 若你配置了API Key的应用限制,需确认当前Flutter应用的包名、SHA1签名已经添加到允许列表中
内容的提问来源于stack exchange,提问作者user17043594
相关产品推荐
相关产品推荐

