Skip to content

Commit eddfdb2

Browse files
Revert "Migrate to Firebase AI Logic"
This reverts commit 6146a29.
1 parent 6146a29 commit eddfdb2

File tree

6 files changed

+22
-55
lines changed

6 files changed

+22
-55
lines changed

README.md

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,14 @@ Here are the screens that make up SociaLite:
4646
2. Open the whole project in Android Studio.
4747
3. Sync & Run `app` configuration
4848

49-
### (optional) Add Gemini API via Firebase AI Logic:
50-
4. Set up a Firebase Project, connect your app to the _Gemini Developer API_ by following [these steps](https://firebase.google.com/docs/ai-logic/get-started?platform=android&api=dev),
51-
5. Replace google-services.json with your own & Run `app` configuration,
49+
> Note: The Google AI client SDK for Android used in this code sample is
50+
recommended for prototyping only. For non-prototyping use cases, we strongly
51+
recommend that you use [Vertex AI for Firebase](https://firebase.google.com/docs/vertex-ai/migrate-to-vertex-ai?platform=android).
52+
53+
### (optional) Add Gemini API:
54+
4. Create a Gemini API key in [Google AI studio](https://aistudio.google.com/app/apikey),
55+
5. Add your Gemini API key as `API_KEY` to your [`local.properties`] file,
56+
6. Sync & Run `app` configuration,
5257
7. In the app, go to Settings and tap the "AI Chatbot" button.
5358

5459
## Reporting Issues

app/build.gradle.kts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ plugins {
2525
alias(libs.plugins.ksp)
2626
alias(libs.plugins.secrets)
2727
alias(libs.plugins.download)
28-
alias(libs.plugins.google.gms.google.services)
2928
}
3029

3130
kotlin {
@@ -177,7 +176,6 @@ dependencies {
177176
implementation(libs.coil)
178177
implementation(libs.coil.compose)
179178

180-
implementation(platform(libs.firebase.bom))
181-
implementation(libs.firebase.ai)
179+
implementation(libs.generativeai)
182180
implementation(libs.datastore)
183181
}

app/google-services.json

Lines changed: 0 additions & 30 deletions
This file was deleted.

app/src/main/java/com/google/android/samples/socialite/repository/ChatRepository.kt

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,16 @@ package com.google.android.samples.socialite.repository
1919
import android.content.Context
2020
import android.graphics.BitmapFactory
2121
import android.net.Uri
22-
import android.util.Log
2322
import android.widget.Toast
2423
import androidx.datastore.core.DataStore
2524
import androidx.datastore.preferences.core.Preferences
2625
import androidx.datastore.preferences.core.booleanPreferencesKey
2726
import androidx.datastore.preferences.core.edit
2827
import androidx.datastore.preferences.preferencesDataStore
28+
import com.google.ai.client.generativeai.GenerativeModel
29+
import com.google.ai.client.generativeai.type.Content
30+
import com.google.ai.client.generativeai.type.content
31+
import com.google.android.samples.socialite.BuildConfig
2932
import com.google.android.samples.socialite.R
3033
import com.google.android.samples.socialite.data.ChatDao
3134
import com.google.android.samples.socialite.data.ContactDao
@@ -35,12 +38,6 @@ import com.google.android.samples.socialite.di.AppCoroutineScope
3538
import com.google.android.samples.socialite.model.ChatDetail
3639
import com.google.android.samples.socialite.model.Message
3740
import com.google.android.samples.socialite.widget.model.WidgetModelRepository
38-
import com.google.firebase.Firebase
39-
import com.google.firebase.FirebaseApp
40-
import com.google.firebase.ai.ai
41-
import com.google.firebase.ai.type.Content
42-
import com.google.firebase.ai.type.GenerativeBackend
43-
import com.google.firebase.ai.type.content
4441
import dagger.hilt.android.qualifiers.ApplicationContext
4542
import javax.inject.Inject
4643
import javax.inject.Singleton
@@ -100,8 +97,11 @@ class ChatRepository @Inject internal constructor(
10097
saveMessageAndNotify(chatId, text, 0L, mediaUri, mediaMimeType, detail, PushReason.OutgoingMessage)
10198

10299
// Create a generative AI Model to interact with the Gemini API.
103-
val generativeModel = Firebase.ai(backend = GenerativeBackend.googleAI()).generativeModel(
104-
modelName = "gemini-2.0-flash-lite-001",
100+
val generativeModel = GenerativeModel(
101+
modelName = "gemini-1.5-pro-latest",
102+
// Set your Gemini API in as an `API_KEY` variable in your local.properties file
103+
apiKey = BuildConfig.API_KEY,
104+
// Set a system instruction to set the behavior of the model.
105105
systemInstruction = content {
106106
text("Please respond to this chat conversation like a friendly ${detail.firstContact.replyModel}.")
107107
},
@@ -297,10 +297,7 @@ class ChatRepository @Inject internal constructor(
297297
}
298298

299299
fun toggleChatbotSetting() {
300-
val firebaseApp = FirebaseApp.getInstance()
301-
302-
Log.d("ChatRepository", "Firebase App ID: ${firebaseApp.options.projectId}")
303-
if (firebaseApp.options.projectId == "mock_project") {
300+
if (BuildConfig.API_KEY == "DUMMY_API_KEY") {
304301
Toast.makeText(
305302
appContext,
306303
appContext.getString(R.string.set_api_key_toast),

app/src/main/res/values/strings.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@
7272
<string name="ai_chatbot_setting">AI Chatbot</string>
7373
<string name="ai_chatbot_setting_enabled">enabled</string>
7474
<string name="ai_chatbot_setting_disabled">disabled</string>
75-
<string name="set_api_key_toast">Please connect your app to Firebase to enable AI Chatbot</string>
75+
<string name="set_api_key_toast">Please set your API key in local.properties</string>
7676
<string name="gemini_error">Gemini error (%1$s)</string>
7777
<string name="image_error">Can\'t open image</string>
7878
<string name="unknown_error">Unknown error</string>

gradle/libs.versions.toml

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,6 @@ core = "1.15.0"
2929
core-performance = "1.0.0"
3030
core-splashscreen = "1.0.1"
3131
espresso = "3.6.1"
32-
firebaseBoM = "33.14.0"
33-
googleGmsGoogleServices = "4.4.2"
3432
download = "5.6.0"
3533
graphics = "1.0.1"
3634
hilt = "2.49"
@@ -55,6 +53,7 @@ window = "1.3.0"
5553
material3-adaptive-navigation-suite = "1.3.1"
5654
glance = "1.1.1"
5755
secrets = "2.0.1"
56+
generativeai = "0.9.0"
5857
datastore = "1.1.1"
5958
visionCommon = "17.3.0"
6059
segmentationSelfie = "16.0.0-beta6"
@@ -124,8 +123,7 @@ turbine = { group = "app.cash.turbine", name = "turbine", version.ref = "turbine
124123
uiautomator = { group = "androidx.test.uiautomator", name = "uiautomator", version.ref = "uiautomator" }
125124
window = { group = "androidx.window", name = "window", version.ref = "window" }
126125
ktlint = "com.pinterest.ktlint:ktlint-cli:1.1.1" # Used in build.gradle.kts
127-
firebase-bom = { group = "com.google.firebase", name = "firebase-bom", version.ref = "firebaseBoM" }
128-
firebase-ai = { group = "com.google.firebase", name = "firebase-ai" }
126+
generativeai = { group = "com.google.ai.client.generativeai", name = "generativeai", version.ref = "generativeai"}
129127
datastore = { group = "androidx.datastore", name = "datastore-preferences", version.ref = "datastore"}
130128
vision-common = { group = "com.google.mlkit", name = "vision-common", version.ref = "visionCommon" }
131129
segmentation-selfie = { group = "com.google.mlkit", name = "segmentation-selfie", version.ref = "segmentationSelfie" }
@@ -145,4 +143,3 @@ ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" }
145143
spotless = { id = "com.diffplug.spotless", version.ref = "spotless" }
146144
secrets = { id = "com.google.android.libraries.mapsplatform.secrets-gradle-plugin", version.ref = "secrets" }
147145
download = { id = "de.undercouch.download", version.ref = "download" }
148-
google-gms-google-services = { id = "com.google.gms.google-services", version.ref = "googleGmsGoogleServices" }

0 commit comments

Comments
 (0)