@@ -36,15 +36,17 @@ public final class FirebaseOptions {
3636 private static final String DATABASE_URL_RESOURCE_NAME = "firebase_database_url" ;
3737 private static final String GA_TRACKING_ID_RESOURCE_NAME = "ga_trackingId" ;
3838 private static final String GCM_SENDER_ID_RESOURCE_NAME = "gcm_defaultSenderId" ;
39- private static final String STORAGE_BUCKET_RESOURCE_NAME = "google_storage_bucket" ;
4039 private static final String PROJECT_ID_RESOURCE_NAME = "project_id" ;
40+ private static final String RECAPTCHA_SITE_KEY_RESOURCE_NAME = "recaptcha_site_key" ;
41+ private static final String STORAGE_BUCKET_RESOURCE_NAME = "google_storage_bucket" ;
4142
4243 private final String apiKey ;
4344 private final String applicationId ;
4445 private final String databaseUrl ;
4546 private final String gaTrackingId ;
4647 private final String gcmSenderId ;
4748 private final String storageBucket ;
49+ private final String recaptchaSiteKey ;
4850 private final String projectId ;
4951
5052 /** Builder for constructing FirebaseOptions. */
@@ -55,6 +57,7 @@ public static final class Builder {
5557 private String gaTrackingId ;
5658 private String gcmSenderId ;
5759 private String storageBucket ;
60+ private String recaptchaSiteKey ;
5861 private String projectId ;
5962
6063 /** Constructs an empty builder. */
@@ -73,6 +76,7 @@ public Builder(@NonNull FirebaseOptions options) {
7376 gaTrackingId = options .gaTrackingId ;
7477 gcmSenderId = options .gcmSenderId ;
7578 storageBucket = options .storageBucket ;
79+ recaptchaSiteKey = options .recaptchaSiteKey ;
7680 projectId = options .projectId ;
7781 }
7882
@@ -115,6 +119,12 @@ public Builder setStorageBucket(@Nullable String storageBucket) {
115119 return this ;
116120 }
117121
122+ @ NonNull
123+ public Builder setRecaptchaSiteKey (@ Nullable String recaptchaSiteKey ) {
124+ this .recaptchaSiteKey = recaptchaSiteKey ;
125+ return this ;
126+ }
127+
118128 @ NonNull
119129 public Builder setProjectId (@ Nullable String projectId ) {
120130 this .projectId = projectId ;
@@ -124,7 +134,14 @@ public Builder setProjectId(@Nullable String projectId) {
124134 @ NonNull
125135 public FirebaseOptions build () {
126136 return new FirebaseOptions (
127- applicationId , apiKey , databaseUrl , gaTrackingId , gcmSenderId , storageBucket , projectId );
137+ applicationId ,
138+ apiKey ,
139+ databaseUrl ,
140+ gaTrackingId ,
141+ gcmSenderId ,
142+ storageBucket ,
143+ recaptchaSiteKey ,
144+ projectId );
128145 }
129146 }
130147
@@ -135,6 +152,7 @@ private FirebaseOptions(
135152 @ Nullable String gaTrackingId ,
136153 @ Nullable String gcmSenderId ,
137154 @ Nullable String storageBucket ,
155+ @ Nullable String recaptchaSiteKey ,
138156 @ Nullable String projectId ) {
139157 Preconditions .checkState (!isEmptyOrWhitespace (applicationId ), "ApplicationId must be set." );
140158 this .applicationId = applicationId ;
@@ -143,6 +161,7 @@ private FirebaseOptions(
143161 this .gaTrackingId = gaTrackingId ;
144162 this .gcmSenderId = gcmSenderId ;
145163 this .storageBucket = storageBucket ;
164+ this .recaptchaSiteKey = recaptchaSiteKey ;
146165 this .projectId = projectId ;
147166 }
148167
@@ -165,6 +184,7 @@ public static FirebaseOptions fromResource(@NonNull Context context) {
165184 reader .getString (GA_TRACKING_ID_RESOURCE_NAME ),
166185 reader .getString (GCM_SENDER_ID_RESOURCE_NAME ),
167186 reader .getString (STORAGE_BUCKET_RESOURCE_NAME ),
187+ reader .getString (RECAPTCHA_SITE_KEY_RESOURCE_NAME ),
168188 reader .getString (PROJECT_ID_RESOURCE_NAME ));
169189 }
170190
@@ -216,6 +236,12 @@ public String getStorageBucket() {
216236 return storageBucket ;
217237 }
218238
239+ /** The Google Cloud Storage bucket name, e.g. abc-xyz-123.storage.firebase.com. */
240+ @ Nullable
241+ public String getRecaptchaSiteKey () {
242+ return recaptchaSiteKey ;
243+ }
244+
219245 /** The Google Cloud project ID, e.g. my-project-1234 */
220246 @ Nullable
221247 public String getProjectId () {
@@ -234,13 +260,21 @@ public boolean equals(Object o) {
234260 && Objects .equal (gaTrackingId , other .gaTrackingId )
235261 && Objects .equal (gcmSenderId , other .gcmSenderId )
236262 && Objects .equal (storageBucket , other .storageBucket )
263+ && Objects .equal (recaptchaSiteKey , other .recaptchaSiteKey )
237264 && Objects .equal (projectId , other .projectId );
238265 }
239266
240267 @ Override
241268 public int hashCode () {
242269 return Objects .hashCode (
243- applicationId , apiKey , databaseUrl , gaTrackingId , gcmSenderId , storageBucket , projectId );
270+ applicationId ,
271+ apiKey ,
272+ databaseUrl ,
273+ gaTrackingId ,
274+ gcmSenderId ,
275+ storageBucket ,
276+ recaptchaSiteKey ,
277+ projectId );
244278 }
245279
246280 @ Override
@@ -251,6 +285,7 @@ public String toString() {
251285 .add ("databaseUrl" , databaseUrl )
252286 .add ("gcmSenderId" , gcmSenderId )
253287 .add ("storageBucket" , storageBucket )
288+ .add ("recaptchaSiteKey" , recaptchaSiteKey )
254289 .add ("projectId" , projectId )
255290 .toString ();
256291 }
0 commit comments