title: How to put the Information get from Google Place API and store to Firebase?
body: <p>I'm follow the tutorial and implement the google place api to my file.
  But I want to change it save to Firebase. Maybe save to a table "Location"</p>
  
  <p>Anyone can guide me how to save it to firebase. The code I refer is from here:<a href="https://github.com/delaroy/AndroidLocationGeofencing" rel="nofollow noreferrer">https://github.com/delaroy/AndroidLocationGeofencing</a>
  Thanks in advance and sorry for if there was lack of information Ii will added again.</p>
  
  <p><a href="https://i.stack.imgur.com/0zNY5.png" rel="nofollow noreferrer">Screenshot 1</a>
  <a href="https://i.stack.imgur.com/IbQtI.png" rel="nofollow noreferrer">Screenshot 2</a></p>
  
  <pre><code>package com.example.edward.neweventmanagementsystem;
  
  import android.content.ContentValues;
  import android.content.Context;
  import android.content.Intent;
  import android.content.pm.PackageManager;
  import android.database.Cursor;
  import android.net.Uri;
  import android.os.Bundle;
  import android.support.annotation.NonNull;
  import android.support.annotation.Nullable;
  import android.support.v4.app.ActivityCompat;
  import android.support.v7.app.AppCompatActivity;
  import android.support.v7.widget.LinearLayoutManager;
  import android.support.v7.widget.RecyclerView;
  import android.util.Log;
  import android.view.View;
  import android.widget.Toast;
  
  import com.example.edward.neweventmanagementsystem.provider.PlaceContract;
  import com.google.android.gms.common.ConnectionResult;
  import com.google.android.gms.common.GooglePlayServicesNotAvailableException;
  import com.google.android.gms.common.GooglePlayServicesRepairableException;
  import com.google.android.gms.common.api.GoogleApiClient;
  import com.google.android.gms.common.api.GoogleApiClient.ConnectionCallbacks;
  import com.google.android.gms.common.api.GoogleApiClient.OnConnectionFailedListener;
  import com.google.android.gms.common.api.PendingResult;
  import com.google.android.gms.common.api.ResultCallback;
  import com.google.android.gms.location.LocationServices;
  import com.google.android.gms.location.places.Place;
  import com.google.android.gms.location.places.PlaceBuffer;
  import com.google.android.gms.location.places.Places;
  import com.google.android.gms.location.places.ui.PlacePicker;
  import com.google.firebase.database.DataSnapshot;
  import com.google.firebase.database.DatabaseError;
  import com.google.firebase.database.DatabaseReference;
  import com.google.firebase.database.FirebaseDatabase;
  import com.google.firebase.database.ValueEventListener;
  
  import java.util.ArrayList;
  import java.util.List;
  
  import static android.widget.Toast.LENGTH_SHORT;
  
  public class ManageLocation extends AppCompatActivity implements
          ConnectionCallbacks,
          OnConnectionFailedListener {
  
      // Constants
      public static final String TAG = ManageLocation.class.getSimpleName();
      private static final int PERMISSIONS_REQUEST_FINE_LOCATION = 111;
      private static final int PLACE_PICKER_REQUEST = 1;
  
      // Member variables
      private PlaceListAdapter mAdapter;
      private RecyclerView mRecyclerView;
      private boolean mIsEnabled;
      private GoogleApiClient mClient;
      private Geofencing mGeofencing;
      private DatabaseReference mDatabaseReference;
      Context mContext;
      PlaceBuffer mPlaces;
  
      /**
       * Called when the activity is starting
       *
       * @param savedInstanceState The Bundle that contains the data supplied in onSaveInstanceState
       */
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_manage_location);
  
          // Set up the recycler view
          mRecyclerView = (RecyclerView) findViewById(R.id.places_list_recycler_view);
          mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
          mAdapter = new PlaceListAdapter(this, null);
          mRecyclerView.setAdapter(mAdapter);
  
  
  //        Switch onOffSwitch = (Switch) findViewById(R.id.enable_switch);
  //        mIsEnabled = getPreferences(MODE_PRIVATE).getBoolean(getString(R.string.setting_enabled), false);
  //        onOffSwitch.setChecked(mIsEnabled);
  //        onOffSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
  //            @Override
  //            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
  //                SharedPreferences.Editor editor = getPreferences(MODE_PRIVATE).edit();
  //                editor.putBoolean(getString(R.string.setting_enabled), isChecked);
  //                mIsEnabled = isChecked;
  //                editor.commit();
  //                if (isChecked) mGeofencing.registerAllGeofences();
  //                else mGeofencing.unRegisterAllGeofences();
  //            }
  //
  //        });
  
  
          mClient = new GoogleApiClient.Builder(this)
                  .addConnectionCallbacks(this)
                  .addOnConnectionFailedListener(this)
                  .addApi(LocationServices.API)
                  .addApi(Places.GEO_DATA_API)
                  .enableAutoManage(this, this)
                  .build();
  
          mGeofencing = new Geofencing(this, mClient);
  
      }
  
      /***
       * Called when the Google API Client is successfully connected
       *
       * @param connectionHint Bundle of data provided to clients by Google Play services
       */
      @Override
      public void onConnected(@Nullable Bundle connectionHint) {
          refreshPlacesData();
          Log.i(TAG, "API Client Connection Successful!");
      }
  
      /***
       * Called when the Google API Client is suspended
       *
       * @param cause cause The reason for the disconnection. Defined by constants CAUSE_*.
       */
      @Override
      public void onConnectionSuspended(int cause) {
          Log.i(TAG, "API Client Connection Suspended!");
      }
  
      /***
       * Called when the Google API Client failed to connect to Google Play Services
       *
       * @param result A ConnectionResult that can be used for resolving the error
       */
      @Override
      public void onConnectionFailed(@NonNull ConnectionResult result) {
          Log.e(TAG, "API Client Connection Failed!");
      }
  
      public void refreshPlacesData() {
          Uri uri = PlaceContract.PlaceEntry.CONTENT_URI;
          Cursor data = getContentResolver().query(
                  uri,
                  null,
                  null,
                  null,
                  null);
  
          if (data == null || data.getCount() == 0) return;
          List&lt;String&gt; guids = new ArrayList&lt;String&gt;();
          while (data.moveToNext()) {
              guids.add(data.getString(data.getColumnIndex(PlaceContract.PlaceEntry.COLUMN_PLACE_ID)));
          }
          PendingResult&lt;PlaceBuffer&gt; placeResult = Places.GeoDataApi.getPlaceById(mClient,
                  guids.toArray(new String[guids.size()]));
          placeResult.setResultCallback(new ResultCallback&lt;PlaceBuffer&gt;() {
              @Override
              public void onResult(@NonNull PlaceBuffer places) {
                  mAdapter.swapPlaces(places);
                  mGeofencing.updateGeofencesList(places);
                  if (mIsEnabled) mGeofencing.registerAllGeofences();
              }
          });
      }
  
  
      public void onAddPlaceButtonClicked(View view) {
          if (ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION)
                  != PackageManager.PERMISSION_GRANTED) {
              Toast.makeText(this, getString(R.string.need_location_permission_message), Toast.LENGTH_LONG).show();
              return;
          }
          try {
  
              PlacePicker.IntentBuilder builder = new PlacePicker.IntentBuilder();
              Intent i = builder.build(this);
              startActivityForResult(i, PLACE_PICKER_REQUEST);
          } catch (GooglePlayServicesRepairableException e) {
              Log.e(TAG, String.format("GooglePlayServices Not Available [%s]", e.getMessage()));
          } catch (GooglePlayServicesNotAvailableException e) {
              Log.e(TAG, String.format("GooglePlayServices Not Available [%s]", e.getMessage()));
          } catch (Exception e) {
              Log.e(TAG, String.format("PlacePicker Exception: %s", e.getMessage()));
          }
      }
  
  
      /***
       * Called when the Place Picker Activity returns back with a selected place (or after canceling)
       *
       * @param requestCode The request code passed when calling startActivityForResult
       * @param resultCode  The result code specified by the second activity
       * @param data        The Intent that carries the result data.
       */
      protected void onActivityResult(int requestCode, int resultCode, Intent data) {
          if (requestCode == PLACE_PICKER_REQUEST &amp;&amp; resultCode == RESULT_OK) {
              final Place place = PlacePicker.getPlace(this, data);
              if (place == null) {
                  Log.i(TAG, "No place selected");
                  return;
              }
  
              final String placeID = place.getId();
  
              // Insert a new place into DB
  //            ContentValues contentValues = new ContentValues();
  //            contentValues.put(PlaceContract.PlaceEntry.COLUMN_PLACE_ID, placeID);
  //            getContentResolver().insert(PlaceContract.PlaceEntry.CONTENT_URI, contentValues);
  
              //Place the data into Firebase
  
  
  
              // Get live data information
              refreshPlacesData();
          }
      }
  
      public void onRingerPermissionsClicked(View view) {
          Intent intent = new Intent(android.provider.Settings.ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS);
          startActivity(intent);
      }
  
      public void onLocationPermissionClicked(View view) {
          ActivityCompat.requestPermissions(ManageLocation.this,
                  new String[]{android.Manifest.permission.ACCESS_FINE_LOCATION},
                  PERMISSIONS_REQUEST_FINE_LOCATION);
      }
  }
  </code></pre>