flutter_google_places icon indicating copy to clipboard operation
flutter_google_places copied to clipboard

Lost over $300 in GCP billing becoz this package pulls all fields in result, my bad I was unaware

Open SujaYuga opened this issue 4 years ago • 7 comments

While this package is good and is working with no issues for me, I recently had a GCP billing issue where it charged me over $300-$400 without me querying for Contact or Atmosphere data. I was only accessing the Basic fields all the time like Name, Address, and Photos through getDetailsByPlaceId() method but I am unaware that this method pulls all fields and GCP Billing works such a way that its billing is based on the response (PlacesDetailsResponse) object fields rather than the fields that I fetch from PlacesDetailsResponse object.

After several emails and phone calls with GCP support, I came to know that the issues lie with this package and I had already lost over $300 to $400 over 2 months. Any new users please be aware that this API does not have a way to set Fields like Basic fields, Contact fields, Atmosphere fields separately but it returns all fields which you requesting for it.

Having said that, I like this package otherwise and I hope this package includes a way to set fields. For now, I am moving away from this package due to this missing field restrictions feature. I am now considering flutter_places_autocomplete package which has the feature that I am looking for, please suggest me any other package available which is good and also has a field restriction feature.

Also, correct me if there is already a way available in flutter_google_places to restrict the response to certain fields falling under Basic, Contact, or Atmosphere pricing plan.

PlacesDetailsResponse detail = await _places.getDetailsByPlaceId(p.placeId);

SujaYuga avatar May 27 '20 18:05 SujaYuga

I'd like to use this package in my project but this issue is scaring me a bit. If a dev could say something about this, I'd really appreciate it.

travisjayday avatar May 28 '20 16:05 travisjayday

Setting budgets should be a must. Learned that the hard way.

GursheeshSingh avatar Jun 10 '20 14:06 GursheeshSingh

@SujaYuga , what about using new fileds filter , I think this could be better

PlacesDetailsResponse detail =
          await _places.getDetailsByPlaceId(p.placeId, fields: ["geometry"]);

fatimahossny avatar Jun 17 '20 18:06 fatimahossny

I think you are now talking about other plugin google_maps_webservice, this plugin only references it but it doesn't even call getDetailsByPlaceId. Also as there seems to be the fields parameter in the getDetailsByPlaceId, I don't think there are any issues in that other plugin either.

kinex avatar Sep 15 '20 07:09 kinex

google_maps_webservice plugin has this issue

@SujaYuga , what about using new fileds filter , I think this could be better

PlacesDetailsResponse detail =
          await _places.getDetailsByPlaceId(p.placeId, fields: ["geometry"]);

this does not work fields: ["geometry"] - gives the error This plugin was last updated 2 years ago and has zero support - Best to avoid it Even I have faced the billing issue

If anyone has a solution, please share

lepepper avatar Feb 07 '23 05:02 lepepper

While this package is good and is working with no issues for me, I recently had a GCP billing issue where it charged me over $300-$400 without me querying for Contact or Atmosphere data. I was only accessing the Basic fields all the time like Name, Address, and Photos through getDetailsByPlaceId() method but I am unaware that this method pulls all fields and GCP Billing works such a way that its billing is based on the response (PlacesDetailsResponse) object fields rather than the fields that I fetch from PlacesDetailsResponse object.

After several emails and phone calls with GCP support, I came to know that the issues lie with this package and I had already lost over $300 to $400 over 2 months. Any new users please be aware that this API does not have a way to set Fields like Basic fields, Contact fields, Atmosphere fields separately but it returns all fields which you requesting for it.

Having said that, I like this package otherwise and I hope this package includes a way to set fields. For now, I am moving away from this package due to this missing field restrictions feature. I am now considering flutter_places_autocomplete package which has the feature that I am looking for, please suggest me any other package available which is good and also has a field restriction feature.

Also, correct me if there is already a way available in flutter_google_places to restrict the response to certain fields falling under Basic, Contact, or Atmosphere pricing plan.

PlacesDetailsResponse detail = await _places.getDetailsByPlaceId(p.placeId);

@SujaYuga Were you able to overcome the "fields" issue? using this package"flutter_places_autocomplete" Right now i am stuck in same situation

lepepper avatar Feb 07 '23 05:02 lepepper

I have the same problem, getting a huge billing cost in GCP. I also notice that the problem happens when you get the full information for getting details for a place. However, I tried to use fields and does not work.

According to the documentation https://developers.google.com/maps/documentation/places/web-service/details, only it is necessary to add the fields as a query param in the url:

https://maps.googleapis.com/maps/api/place/details/json?fields=name%2Crating%2Cformatted_phone_number&place_id=ChIJN1t_tDeuEmsRUsoyG83frY4&key=YOUR_API_KEY

However if you try with the plugin, adding the parameter fields: [ "name", "geometry"] for example, does not work, and the problem seem to be when trying to parse placeId from PlaceDetail class, because when you request fields, this parameter does not come in the google play api detailed place response

placeId: json['place_id'] as String?,

samuCodelers avatar Apr 15 '24 10:04 samuCodelers