Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Android/firebase_dependencies.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ project.afterEvaluate {

// Add the bill-of-materials
project.dependencies {
implementation platform('com.google.firebase:firebase-bom:34.13.0')
implementation platform('com.google.firebase:firebase-bom:34.14.0')
}
for (String lib : firebaseCpp.dependencies.libSet) {
// Generate and include the proguard file
Expand Down
4 changes: 2 additions & 2 deletions analytics/integration_test/Podfile
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@ use_frameworks! :linkage => :static

target 'integration_test' do
platform :ios, '15.0'
pod 'Firebase/Analytics', '12.13.0'
pod 'Firebase/Analytics', '12.14.0'
end

target 'integration_test_tvos' do
platform :tvos, '15.0'
pod 'Firebase/Analytics', '12.13.0'
pod 'Firebase/Analytics', '12.14.0'
end

post_install do |installer|
Expand Down
2 changes: 1 addition & 1 deletion analytics/ios_headers/FIREventNames.h
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// Copyright 2026 Google LLC

// Copied from Firebase Analytics iOS SDK 12.13.0.
// Copied from Firebase Analytics iOS SDK 12.14.0.

/// @file FIREventNames.h
///
Expand Down
2 changes: 1 addition & 1 deletion analytics/ios_headers/FIRParameterNames.h
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// Copyright 2026 Google LLC

// Copied from Firebase Analytics iOS SDK 12.13.0.
// Copied from Firebase Analytics iOS SDK 12.14.0.

/// @file FIRParameterNames.h
///
Expand Down
2 changes: 1 addition & 1 deletion analytics/ios_headers/FIRUserPropertyNames.h
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// Copyright 2026 Google LLC

// Copied from Firebase Analytics iOS SDK 12.13.0.
// Copied from Firebase Analytics iOS SDK 12.14.0.

/// @file FIRUserPropertyNames.h
///
Expand Down
2 changes: 1 addition & 1 deletion app/app_resources/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ android {
}

dependencies {
implementation platform('com.google.firebase:firebase-bom:34.13.0')
implementation platform('com.google.firebase:firebase-bom:34.14.0')
implementation 'com.google.firebase:firebase-analytics'
}

Expand Down
2 changes: 1 addition & 1 deletion app/google_api_resources/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ android {
}

dependencies {
implementation platform('com.google.firebase:firebase-bom:34.13.0')
implementation platform('com.google.firebase:firebase-bom:34.14.0')
implementation 'com.google.firebase:firebase-analytics'
implementation 'com.google.android.gms:play-services-base:18.10.0'
implementation project(':app:app_resources')
Expand Down
2 changes: 1 addition & 1 deletion app/integration_test/Podfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ platform :ios, '15.0'
use_frameworks! :linkage => :static

target 'integration_test' do
pod 'Firebase/Analytics', '12.13.0'
pod 'Firebase/Analytics', '12.14.0'
end

post_install do |installer|
Expand Down
2 changes: 1 addition & 1 deletion app_check/app_check_resources/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ android {
}

dependencies {
implementation platform('com.google.firebase:firebase-bom:34.13.0')
implementation platform('com.google.firebase:firebase-bom:34.14.0')
implementation 'com.google.firebase:firebase-appcheck'
}

Expand Down
20 changes: 10 additions & 10 deletions app_check/integration_test/Podfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,20 +4,20 @@ use_frameworks! :linkage => :static

target 'integration_test' do
platform :ios, '15.0'
pod 'Firebase/AppCheck', '12.13.0'
pod 'Firebase/Database', '12.13.0'
pod 'Firebase/Auth', '12.13.0'
pod 'Firebase/Storage', '12.13.0'
pod 'Firebase/Functions', '12.13.0'
pod 'Firebase/AppCheck', '12.14.0'
pod 'Firebase/Database', '12.14.0'
pod 'Firebase/Auth', '12.14.0'
pod 'Firebase/Storage', '12.14.0'
pod 'Firebase/Functions', '12.14.0'
end

target 'integration_test_tvos' do
platform :tvos, '15.0'
pod 'Firebase/AppCheck', '12.13.0'
pod 'Firebase/Database', '12.13.0'
pod 'Firebase/Auth', '12.13.0'
pod 'Firebase/Storage', '12.13.0'
pod 'Firebase/Functions', '12.13.0'
pod 'Firebase/AppCheck', '12.14.0'
pod 'Firebase/Database', '12.14.0'
pod 'Firebase/Auth', '12.14.0'
pod 'Firebase/Storage', '12.14.0'
pod 'Firebase/Functions', '12.14.0'
end

post_install do |installer|
Expand Down
41 changes: 40 additions & 1 deletion app_check/src/android/app_check_android.cc
Original file line number Diff line number Diff line change
Expand Up @@ -110,11 +110,17 @@ METHOD_LOOKUP_DEFINITION(
JNIEXPORT void JNICALL JniAppCheckProvider_nativeGetToken(
JNIEnv* env, jobject j_provider, jlong c_provider,
jobject task_completion_source);
JNIEXPORT void JNICALL JniAppCheckProvider_nativeGetLimitedUseToken(
JNIEnv* env, jobject j_provider, jlong c_provider,
jobject task_completion_source);

static const JNINativeMethod kNativeJniAppCheckProviderMethods[] = {
{"nativeGetToken",
"(JLcom/google/android/gms/tasks/TaskCompletionSource;)V",
reinterpret_cast<void*>(JniAppCheckProvider_nativeGetToken)}};
reinterpret_cast<void*>(JniAppCheckProvider_nativeGetToken)},
{"nativeGetLimitedUseToken",
"(JLcom/google/android/gms/tasks/TaskCompletionSource;)V",
reinterpret_cast<void*>(JniAppCheckProvider_nativeGetLimitedUseToken)}};

// clang-format off
#define JNI_APP_CHECK_LISTENER_METHODS(X) \
Expand Down Expand Up @@ -267,6 +273,39 @@ JNIEXPORT void JNICALL JniAppCheckProvider_nativeGetToken(
provider->GetToken(token_callback);
}

JNIEXPORT void JNICALL JniAppCheckProvider_nativeGetLimitedUseToken(
JNIEnv* env, jobject j_provider, jlong c_provider,
jobject task_completion_source) {
// Create GlobalReferences to the provider and task. These references will be
// deleted in the completion callback.
jobject j_provider_global = env->NewGlobalRef(j_provider);
jobject task_completion_source_global =
env->NewGlobalRef(task_completion_source);

// Defines a C++ callback method to call
// JniAppCheckProvider.HandleGetTokenResult with the resulting token
auto token_callback{[j_provider_global, task_completion_source_global](
firebase::app_check::AppCheckToken token,
int error_code, const std::string& error_message) {
// util::GetJNIEnvFromApp returns a threadsafe instance of JNIEnv.
JNIEnv* env = firebase::util::GetJNIEnvFromApp();
jstring error_string = env->NewStringUTF(error_message.c_str());
jstring token_string = env->NewStringUTF(token.token.c_str());
env->CallVoidMethod(
j_provider_global,
jni_provider::GetMethodId(jni_provider::kHandleGetTokenResult),
task_completion_source_global, token_string, token.expire_time_millis,
error_code, error_string);
FIREBASE_ASSERT(!util::CheckAndClearJniExceptions(env));
env->DeleteLocalRef(token_string);
env->DeleteLocalRef(error_string);
env->DeleteGlobalRef(j_provider_global);
env->DeleteGlobalRef(task_completion_source_global);
}};
AppCheckProvider* provider = reinterpret_cast<AppCheckProvider*>(c_provider);
provider->GetLimitedUseToken(token_callback);
}

JNIEXPORT void JNICALL JniAppCheckListener_nativeOnAppCheckTokenChanged(
JNIEnv* env, jobject clazz, jlong c_app_check, jobject token) {
auto app_check_internal = reinterpret_cast<AppCheckInternal*>(c_app_check);
Expand Down
24 changes: 19 additions & 5 deletions app_check/src/android/common_android.cc
Original file line number Diff line number Diff line change
Expand Up @@ -164,11 +164,25 @@ void AndroidAppCheckProvider::GetToken(
void AndroidAppCheckProvider::GetLimitedUseToken(
std::function<void(AppCheckToken, int, const std::string&)>
completion_callback) {
LogWarning(
"GetLimitedUseToken() was called, but the AppCheckProvider interface on "
"Android does not yet support limited-use tokens. Falling back to "
"GetToken().");
GetToken(completion_callback);
JNIEnv* env = GetJniEnv();

jobject j_task = env->CallObjectMethod(
android_provider_,
app_check_provider::GetMethodId(app_check_provider::kGetLimitedUseToken));
std::string error = util::GetAndClearExceptionMessage(env);
if (error.empty()) {
// Create an object to wrap the callback function
TokenResultCallbackData* completion_callback_data =
new TokenResultCallbackData(completion_callback);
util::RegisterCallbackOnTask(
env, j_task, TokenResultCallback,
reinterpret_cast<void*>(completion_callback_data),
jni_task_id_.c_str());
} else {
AppCheckToken empty_token;
completion_callback(empty_token, kAppCheckErrorUnknown, error.c_str());
}
env->DeleteLocalRef(j_task);
}

} // namespace internal
Expand Down
6 changes: 4 additions & 2 deletions app_check/src/android/common_android.h
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,10 @@ namespace internal {
// Used to setup the cache of AppCheckProvider interface method IDs to reduce
// time spent looking up methods by string.
// clang-format off
#define APP_CHECK_PROVIDER_METHODS(X) \
X(GetToken, "getToken", \
#define APP_CHECK_PROVIDER_METHODS(X) \
X(GetToken, "getToken", \
"()Lcom/google/android/gms/tasks/Task;"), \
X(GetLimitedUseToken, "getLimitedUseToken", \
"()Lcom/google/android/gms/tasks/Task;")
// clang-format on

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,16 @@ public Task<AppCheckToken> getToken() {
return taskCompletionSource.getTask();
}

@Override
public Task<AppCheckToken> getLimitedUseToken() {
TaskCompletionSource<AppCheckToken> taskCompletionSource =
new TaskCompletionSource<AppCheckToken>();
// Call the C++ provider to get an AppCheckToken and set the task result.
// The C++ code will call handleGetTokenResult with the resulting token.
nativeGetLimitedUseToken(cProvider, taskCompletionSource);
return taskCompletionSource.getTask();
}

/**
* Called by C++ with a token in order to complete the java task.
*/
Expand All @@ -58,4 +68,6 @@ public void handleGetTokenResult(TaskCompletionSource<AppCheckToken> taskComplet
*/
private native void nativeGetToken(
long cProvider, TaskCompletionSource<AppCheckToken> task_completion_source);
private native void nativeGetLimitedUseToken(
long cProvider, TaskCompletionSource<AppCheckToken> task_completion_source);
}
2 changes: 1 addition & 1 deletion auth/auth_resources/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ android {
}

dependencies {
implementation platform('com.google.firebase:firebase-bom:34.13.0')
implementation platform('com.google.firebase:firebase-bom:34.14.0')
implementation 'com.google.firebase:firebase-analytics'
implementation 'com.google.firebase:firebase-auth'
implementation project(':app:app_resources')
Expand Down
4 changes: 2 additions & 2 deletions auth/integration_test/Podfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@ use_frameworks! :linkage => :static

target 'integration_test' do
platform :ios, '15.0'
pod 'Firebase/Auth', '12.13.0'
pod 'Firebase/Auth', '12.14.0'
end

target 'integration_test_tvos' do
platform :tvos, '15.0'
pod 'Firebase/Auth', '12.13.0'
pod 'Firebase/Auth', '12.14.0'
end

post_install do |installer|
Expand Down
6 changes: 3 additions & 3 deletions cpp_sdk_version.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"released": "13.7.0",
"stable": "13.7.0",
"head": "13.7.0"
"released": "13.8.0",
"stable": "13.8.0",
"head": "13.8.0"
}
2 changes: 1 addition & 1 deletion database/database_resources/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ android {
}

dependencies {
implementation platform('com.google.firebase:firebase-bom:34.13.0')
implementation platform('com.google.firebase:firebase-bom:34.14.0')
implementation 'com.google.firebase:firebase-analytics'
implementation 'com.google.firebase:firebase-database'
//implementation project(':app:app_resources')
Expand Down
8 changes: 4 additions & 4 deletions database/integration_test/Podfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,14 @@ use_frameworks! :linkage => :static

target 'integration_test' do
platform :ios, '15.0'
pod 'Firebase/Database', '12.13.0'
pod 'Firebase/Auth', '12.13.0'
pod 'Firebase/Database', '12.14.0'
pod 'Firebase/Auth', '12.14.0'
end

target 'integration_test_tvos' do
platform :tvos, '15.0'
pod 'Firebase/Database', '12.13.0'
pod 'Firebase/Auth', '12.13.0'
pod 'Firebase/Database', '12.14.0'
pod 'Firebase/Auth', '12.14.0'
end

post_install do |installer|
Expand Down
2 changes: 1 addition & 1 deletion firestore/firestore_resources/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ android {
}

dependencies {
implementation platform('com.google.firebase:firebase-bom:34.13.0')
implementation platform('com.google.firebase:firebase-bom:34.14.0')
implementation 'com.google.firebase:firebase-analytics'
implementation 'com.google.firebase:firebase-firestore'
}
Expand Down
8 changes: 4 additions & 4 deletions firestore/integration_test/Podfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,14 @@ use_frameworks! :linkage => :static

target 'integration_test' do
platform :ios, '15.0'
pod 'Firebase/Firestore', '12.13.0'
pod 'Firebase/Auth', '12.13.0'
pod 'Firebase/Firestore', '12.14.0'
pod 'Firebase/Auth', '12.14.0'
end

target 'integration_test_tvos' do
platform :tvos, '15.0'
pod 'FirebaseFirestore', '12.13.0'
pod 'Firebase/Auth', '12.13.0'
pod 'FirebaseFirestore', '12.14.0'
pod 'Firebase/Auth', '12.14.0'
end

post_install do |installer|
Expand Down
8 changes: 4 additions & 4 deletions firestore/integration_test_internal/Podfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,14 @@ use_frameworks! :linkage => :static

target 'integration_test' do
platform :ios, '15.0'
pod 'Firebase/Firestore', '12.13.0'
pod 'Firebase/Auth', '12.13.0'
pod 'Firebase/Firestore', '12.14.0'
pod 'Firebase/Auth', '12.14.0'
end

target 'integration_test_tvos' do
platform :tvos, '15.0'
pod 'FirebaseFirestore', '12.13.0'
pod 'Firebase/Auth', '12.13.0'
pod 'FirebaseFirestore', '12.14.0'
pod 'Firebase/Auth', '12.14.0'
end

post_install do |installer|
Expand Down
12 changes: 6 additions & 6 deletions functions/integration_test/Podfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,16 @@ use_frameworks! :linkage => :static

target 'integration_test' do
platform :ios, '15.0'
pod 'Firebase/AppCheck', '12.13.0'
pod 'Firebase/Functions', '12.13.0'
pod 'Firebase/Auth', '12.13.0'
pod 'Firebase/AppCheck', '12.14.0'
pod 'Firebase/Functions', '12.14.0'
pod 'Firebase/Auth', '12.14.0'
end

target 'integration_test_tvos' do
platform :tvos, '15.0'
pod 'Firebase/AppCheck', '12.13.0'
pod 'Firebase/Functions', '12.13.0'
pod 'Firebase/Auth', '12.13.0'
pod 'Firebase/AppCheck', '12.14.0'
pod 'Firebase/Functions', '12.14.0'
pod 'Firebase/Auth', '12.14.0'
end

post_install do |installer|
Expand Down
4 changes: 2 additions & 2 deletions installations/integration_test/Podfile
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ use_frameworks! :linkage => :static

target 'integration_test' do
platform :ios, '15.0'
pod 'Firebase/Analytics', '12.13.0'
pod 'Firebase/Installations', '12.13.0'
pod 'Firebase/Analytics', '12.14.0'
pod 'Firebase/Installations', '12.14.0'
end

post_install do |installer|
Expand Down
Loading
Loading