@react-native-firebase/installations 25.1.0 → 26.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/RNFBInstallations.podspec +9 -7
  3. package/android/build.gradle +19 -0
  4. package/android/src/main/java/io/invertase/firebase/installations/{ReactNativeFirebaseInstallationsModule.java → NativeRNFBTurboInstallations.java} +34 -28
  5. package/android/src/main/java/io/invertase/firebase/installations/ReactNativeFirebaseInstallationsPackage.java +1 -1
  6. package/android/src/main/java/io/invertase/firebase/installations/generated/java/com/facebook/fbreact/specs/NativeRNFBTurboInstallationsSpec.java +46 -0
  7. package/android/src/main/java/io/invertase/firebase/installations/generated/jni/CMakeLists.txt +36 -0
  8. package/android/src/main/java/io/invertase/firebase/installations/generated/jni/RNFBInstallationsTurboModules-generated.cpp +44 -0
  9. package/android/src/main/java/io/invertase/firebase/installations/generated/jni/RNFBInstallationsTurboModules.h +31 -0
  10. package/android/src/main/java/io/invertase/firebase/installations/generated/jni/react/renderer/components/RNFBInstallationsTurboModules/RNFBInstallationsTurboModulesJSI-generated.cpp +42 -0
  11. package/android/src/main/java/io/invertase/firebase/installations/generated/jni/react/renderer/components/RNFBInstallationsTurboModules/RNFBInstallationsTurboModulesJSI.h +89 -0
  12. package/dist/module/index.js +81 -6
  13. package/dist/module/index.js.map +1 -1
  14. package/dist/module/version.js +1 -1
  15. package/dist/typescript/lib/index.d.ts +35 -5
  16. package/dist/typescript/lib/index.d.ts.map +1 -1
  17. package/dist/typescript/lib/types/internal.d.ts +8 -9
  18. package/dist/typescript/lib/types/internal.d.ts.map +1 -1
  19. package/dist/typescript/lib/version.d.ts +1 -1
  20. package/ios/RNFBInstallations/RNFBInstallationsModule.h +3 -3
  21. package/ios/RNFBInstallations/{RNFBInstallationsModule.m → RNFBInstallationsModule.mm} +32 -25
  22. package/ios/RNFBInstallations.xcodeproj/project.pbxproj +8 -8
  23. package/ios/generated/RCTAppDependencyProvider.h +25 -0
  24. package/ios/generated/RCTAppDependencyProvider.mm +55 -0
  25. package/ios/generated/RCTModulesConformingToProtocolsProvider.h +18 -0
  26. package/ios/generated/RCTModulesConformingToProtocolsProvider.mm +33 -0
  27. package/ios/generated/RCTThirdPartyComponentsProvider.h +16 -0
  28. package/ios/generated/RCTThirdPartyComponentsProvider.mm +23 -0
  29. package/ios/generated/RNFBInstallationsTurboModules/RNFBInstallationsTurboModules-generated.mm +53 -0
  30. package/ios/generated/RNFBInstallationsTurboModules/RNFBInstallationsTurboModules.h +71 -0
  31. package/ios/generated/RNFBInstallationsTurboModulesJSI-generated.cpp +42 -0
  32. package/ios/generated/RNFBInstallationsTurboModulesJSI.h +89 -0
  33. package/ios/generated/ReactAppDependencyProvider.podspec +34 -0
  34. package/lib/index.ts +111 -8
  35. package/lib/types/internal.ts +10 -15
  36. package/lib/version.ts +1 -1
  37. package/package.json +22 -4
  38. package/react-native.config.js +10 -0
  39. package/specs/NativeRNFBTurboInstallations.ts +10 -0
  40. package/typedoc.json +1 -1
  41. package/dist/module/modular.js +0 -68
  42. package/dist/module/modular.js.map +0 -1
  43. package/dist/module/namespaced.js +0 -72
  44. package/dist/module/namespaced.js.map +0 -1
  45. package/dist/module/types/namespaced.js +0 -33
  46. package/dist/module/types/namespaced.js.map +0 -1
  47. package/dist/typescript/lib/modular.d.ts +0 -25
  48. package/dist/typescript/lib/modular.d.ts.map +0 -1
  49. package/dist/typescript/lib/namespaced.d.ts +0 -12
  50. package/dist/typescript/lib/namespaced.d.ts.map +0 -1
  51. package/dist/typescript/lib/types/namespaced.d.ts +0 -77
  52. package/dist/typescript/lib/types/namespaced.d.ts.map +0 -1
  53. package/lib/modular.ts +0 -80
  54. package/lib/namespaced.ts +0 -100
  55. package/lib/types/namespaced.ts +0 -112
package/CHANGELOG.md CHANGED
@@ -3,6 +3,27 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [26.1.0](https://github.com/invertase/react-native-firebase/compare/v26.0.0...v26.1.0) (2026-08-03)
7
+
8
+ ### Features
9
+
10
+ - **ios:** add SPM dependency resolution support alongside CocoaPods ([#8933](https://github.com/invertase/react-native-firebase/issues/8933)) ([44a7a9a](https://github.com/invertase/react-native-firebase/commit/44a7a9ae7b404f412e9766c0417f1df8fa971a0b))
11
+
12
+ ## [26.0.0](https://github.com/invertase/react-native-firebase/compare/v25.1.0...v26.0.0) (2026-07-29)
13
+
14
+ ### ⚠ BREAKING CHANGES
15
+
16
+ - **installations:** migrate installations to TurboModules
17
+
18
+ ### Features
19
+
20
+ - **installations:** migrate installations to TurboModules ([4097d25](https://github.com/invertase/react-native-firebase/commit/4097d25eaced7bb31bca886d74531714b057feb1))
21
+
22
+ ### Bug Fixes
23
+
24
+ - add codegen verify and spec-native parity tests ([49d9f1b](https://github.com/invertase/react-native-firebase/commit/49d9f1baba4fc83c1dd4983f582bbd7352d78809))
25
+ - **ios:** set IPHONEOS_DEPLOYMENT_TARGET to 15.0, update platform support docs/conditionals ([#9108](https://github.com/invertase/react-native-firebase/issues/9108)) ([99d0899](https://github.com/invertase/react-native-firebase/commit/99d089908e3eec6155d73ecf05ff7274ad33c46e)), closes [#8882](https://github.com/invertase/react-native-firebase/issues/8882)
26
+
6
27
  ## [25.1.0](https://github.com/invertase/react-native-firebase/compare/v25.0.1...v25.1.0) (2026-06-25)
7
28
 
8
29
  **Note:** Version bump only for package @react-native-firebase/installations
@@ -1,4 +1,5 @@
1
1
  require 'json'
2
+ require_relative '../app/firebase_spm'
2
3
  package = JSON.parse(File.read(File.join(__dir__, 'package.json')))
3
4
  appPackage = JSON.parse(File.read(File.join('..', 'app', 'package.json')))
4
5
 
@@ -28,15 +29,16 @@ Pod::Spec.new do |s|
28
29
  s.ios.deployment_target = firebase_ios_target
29
30
  s.macos.deployment_target = firebase_macos_target
30
31
  s.tvos.deployment_target = firebase_tvos_target
31
- s.source_files = 'ios/**/*.{h,m}'
32
+ s.source_files = 'ios/**/*.{h,m,mm,cpp,swift}'
33
+ s.private_header_files = "ios/**/*.h"
34
+ s.exclude_files = 'ios/generated/RCTThirdPartyComponentsProvider.*', 'ios/generated/RCTAppDependencyProvider.*', 'ios/generated/RCTModuleProviders.*', 'ios/generated/RCTModulesConformingToProtocolsProvider.*', 'ios/generated/RCTUnstableModulesRequiringMainQueueSetupProvider.*'
32
35
 
33
36
  s.dependency 'RNFBApp'
34
37
 
35
- # React Native dependencies
36
- if defined?(install_modules_dependencies()) != nil
37
- install_modules_dependencies(s);
38
- else
39
- s.dependency "React-Core"
38
+ install_modules_dependencies(s);
39
+
40
+ if defined?(ENV["RCT_NEW_ARCH_ENABLED"]) != nil && (ENV["RCT_NEW_ARCH_ENABLED"] == '0')
41
+ raise "#{s.name} requires New Architecture. Enable New Architecture to use this module"
40
42
  end
41
43
 
42
44
  if defined?($FirebaseSDKVersion)
@@ -45,7 +47,7 @@ Pod::Spec.new do |s|
45
47
  end
46
48
 
47
49
  # Firebase dependencies
48
- s.dependency 'Firebase/Installations', firebase_sdk_version
50
+ firebase_dependency(s, firebase_sdk_version, ['FirebaseInstallations'], 'Firebase/Installations')
49
51
 
50
52
  if defined?($RNFirebaseAsStaticFramework)
51
53
  Pod::UI.puts "#{s.name}: Using overridden static_framework value of '#{$RNFirebaseAsStaticFramework}'"
@@ -81,6 +81,7 @@ android {
81
81
  sourceSets {
82
82
  main {
83
83
  java.srcDirs = ['src/main/java', 'src/reactnative/java']
84
+ java.excludes = ['**/generated/jni/**']
84
85
  }
85
86
  }
86
87
  }
@@ -100,3 +101,21 @@ ReactNative.shared.applyPackageVersion()
100
101
  ReactNative.shared.applyDefaultExcludes()
101
102
  ReactNative.module.applyAndroidVersions()
102
103
  ReactNative.module.applyReactNativeDependency("api")
104
+
105
+ def isNewArchitectureDisabled() {
106
+ return project.hasProperty("newArchEnabled") && project.newArchEnabled != "true"
107
+ }
108
+
109
+ if (isNewArchitectureDisabled()) {
110
+ def ANSI_RED = "\u001B[31m";
111
+ def ANSI_RESET = "\u001B[0m";
112
+
113
+ println("\n\n\n")
114
+ println(ANSI_RED + "**************************************************************************************************************")
115
+ println("\n\n\n")
116
+ println("New Architecture support is required for @react-native-firebase/installations")
117
+ println("\n\n\n")
118
+ println("**************************************************************************************************************" + ANSI_RESET)
119
+ println("\n\n\n")
120
+ System.exit(1)
121
+ }
@@ -18,31 +18,38 @@ package io.invertase.firebase.installations;
18
18
  */
19
19
 
20
20
  import android.util.Log;
21
- import com.facebook.react.bridge.*;
21
+ import com.facebook.fbreact.specs.NativeRNFBTurboInstallationsSpec;
22
+ import com.facebook.react.bridge.Promise;
23
+ import com.facebook.react.bridge.ReactApplicationContext;
22
24
  import com.google.android.gms.tasks.Tasks;
23
25
  import com.google.firebase.FirebaseApp;
24
26
  import com.google.firebase.installations.FirebaseInstallations;
25
- import io.invertase.firebase.common.ReactNativeFirebaseModule;
27
+ import io.invertase.firebase.common.TaskExecutorService;
28
+ import java.util.concurrent.ExecutorService;
26
29
 
27
- public class ReactNativeFirebaseInstallationsModule extends ReactNativeFirebaseModule {
30
+ public class NativeRNFBTurboInstallations extends NativeRNFBTurboInstallationsSpec {
28
31
  private static final String TAG = "Installations";
32
+ private final TaskExecutorService executorService;
29
33
 
30
- ReactNativeFirebaseInstallationsModule(ReactApplicationContext reactContext) {
31
- super(reactContext, TAG);
34
+ public NativeRNFBTurboInstallations(ReactApplicationContext reactContext) {
35
+ super(reactContext);
36
+ this.executorService = new TaskExecutorService("UniversalInstallationsModule");
32
37
  }
33
38
 
34
- @ReactMethod
39
+ private ExecutorService getExecutor() {
40
+ return executorService.getExecutor();
41
+ }
42
+
43
+ @Override
35
44
  public void getId(String appName, Promise promise) {
36
45
  FirebaseApp firebaseApp = FirebaseApp.getInstance(appName);
37
46
 
38
47
  Tasks.call(
39
48
  getExecutor(),
40
- () -> {
41
- return Tasks.await(FirebaseInstallations.getInstance(firebaseApp).getId());
42
- })
49
+ () -> Tasks.await(FirebaseInstallations.getInstance(firebaseApp).getId()))
43
50
  .addOnCompleteListener(
44
51
  getExecutor(),
45
- (task) -> {
52
+ task -> {
46
53
  if (task.isSuccessful()) {
47
54
  promise.resolve(task.getResult());
48
55
  } else {
@@ -50,24 +57,21 @@ public class ReactNativeFirebaseInstallationsModule extends ReactNativeFirebaseM
50
57
  TAG,
51
58
  "RNFB: Unknown error while fetching Installations ID "
52
59
  + task.getException().getMessage());
53
- rejectPromiseWithCodeAndMessage(
54
- promise, "id-error", task.getException().getMessage());
60
+ promise.reject("id-error", task.getException().getMessage());
55
61
  }
56
62
  });
57
63
  }
58
64
 
59
- @ReactMethod
65
+ @Override
60
66
  public void getToken(String appName, boolean forceRefresh, Promise promise) {
61
67
  FirebaseApp firebaseApp = FirebaseApp.getInstance(appName);
62
68
  Tasks.call(
63
69
  getExecutor(),
64
- () -> {
65
- return Tasks.await(
66
- FirebaseInstallations.getInstance(firebaseApp).getToken(forceRefresh));
67
- })
70
+ () ->
71
+ Tasks.await(FirebaseInstallations.getInstance(firebaseApp).getToken(forceRefresh)))
68
72
  .addOnCompleteListener(
69
73
  getExecutor(),
70
- (task) -> {
74
+ task -> {
71
75
  if (task.isSuccessful()) {
72
76
  promise.resolve(task.getResult().getToken());
73
77
  } else {
@@ -75,23 +79,20 @@ public class ReactNativeFirebaseInstallationsModule extends ReactNativeFirebaseM
75
79
  TAG,
76
80
  "RNFB: Unknown error while fetching Installations token "
77
81
  + task.getException().getMessage());
78
- rejectPromiseWithCodeAndMessage(
79
- promise, "token-error", task.getException().getMessage());
82
+ promise.reject("token-error", task.getException().getMessage());
80
83
  }
81
84
  });
82
85
  }
83
86
 
84
- @ReactMethod
85
- public void delete(String appName, Promise promise) {
87
+ @Override
88
+ public void deleteInstallations(String appName, Promise promise) {
86
89
  FirebaseApp firebaseApp = FirebaseApp.getInstance(appName);
87
90
  Tasks.call(
88
91
  getExecutor(),
89
- () -> {
90
- return Tasks.await(FirebaseInstallations.getInstance(firebaseApp).delete());
91
- })
92
+ () -> Tasks.await(FirebaseInstallations.getInstance(firebaseApp).delete()))
92
93
  .addOnCompleteListener(
93
94
  getExecutor(),
94
- (task) -> {
95
+ task -> {
95
96
  if (task.isSuccessful()) {
96
97
  promise.resolve(null);
97
98
  } else {
@@ -99,9 +100,14 @@ public class ReactNativeFirebaseInstallationsModule extends ReactNativeFirebaseM
99
100
  TAG,
100
101
  "RNFB: Unknown error while deleting Installations"
101
102
  + task.getException().getMessage());
102
- rejectPromiseWithCodeAndMessage(
103
- promise, "delete-error", task.getException().getMessage());
103
+ promise.reject("delete-error", task.getException().getMessage());
104
104
  }
105
105
  });
106
106
  }
107
+
108
+ @Override
109
+ public void invalidate() {
110
+ super.invalidate();
111
+ executorService.shutdown();
112
+ }
107
113
  }
@@ -30,7 +30,7 @@ public class ReactNativeFirebaseInstallationsPackage implements ReactPackage {
30
30
  @Override
31
31
  public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) {
32
32
  List<NativeModule> modules = new ArrayList<>();
33
- modules.add(new ReactNativeFirebaseInstallationsModule(reactContext));
33
+ modules.add(new NativeRNFBTurboInstallations(reactContext));
34
34
  return modules;
35
35
  }
36
36
 
@@ -0,0 +1,46 @@
1
+
2
+ /**
3
+ * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
4
+ *
5
+ * Do not edit this file as changes may cause incorrect behavior and will be lost
6
+ * once the code is regenerated.
7
+ *
8
+ * @generated by codegen project: GenerateModuleJavaSpec.js
9
+ *
10
+ * @nolint
11
+ */
12
+
13
+ package com.facebook.fbreact.specs;
14
+
15
+ import com.facebook.proguard.annotations.DoNotStrip;
16
+ import com.facebook.react.bridge.Promise;
17
+ import com.facebook.react.bridge.ReactApplicationContext;
18
+ import com.facebook.react.bridge.ReactContextBaseJavaModule;
19
+ import com.facebook.react.bridge.ReactMethod;
20
+ import com.facebook.react.turbomodule.core.interfaces.TurboModule;
21
+ import javax.annotation.Nonnull;
22
+
23
+ public abstract class NativeRNFBTurboInstallationsSpec extends ReactContextBaseJavaModule implements TurboModule {
24
+ public static final String NAME = "NativeRNFBTurboInstallations";
25
+
26
+ public NativeRNFBTurboInstallationsSpec(ReactApplicationContext reactContext) {
27
+ super(reactContext);
28
+ }
29
+
30
+ @Override
31
+ public @Nonnull String getName() {
32
+ return NAME;
33
+ }
34
+
35
+ @ReactMethod
36
+ @DoNotStrip
37
+ public abstract void deleteInstallations(String appName, Promise promise);
38
+
39
+ @ReactMethod
40
+ @DoNotStrip
41
+ public abstract void getId(String appName, Promise promise);
42
+
43
+ @ReactMethod
44
+ @DoNotStrip
45
+ public abstract void getToken(String appName, boolean forceRefresh, Promise promise);
46
+ }
@@ -0,0 +1,36 @@
1
+ # Copyright (c) Meta Platforms, Inc. and affiliates.
2
+ #
3
+ # This source code is licensed under the MIT license found in the
4
+ # LICENSE file in the root directory of this source tree.
5
+
6
+ cmake_minimum_required(VERSION 3.13)
7
+ set(CMAKE_VERBOSE_MAKEFILE on)
8
+
9
+ file(GLOB react_codegen_SRCS CONFIGURE_DEPENDS *.cpp react/renderer/components/RNFBInstallationsTurboModules/*.cpp)
10
+
11
+ add_library(
12
+ react_codegen_RNFBInstallationsTurboModules
13
+ OBJECT
14
+ ${react_codegen_SRCS}
15
+ )
16
+
17
+ target_include_directories(react_codegen_RNFBInstallationsTurboModules PUBLIC . react/renderer/components/RNFBInstallationsTurboModules)
18
+
19
+ target_link_libraries(
20
+ react_codegen_RNFBInstallationsTurboModules
21
+ fbjni
22
+ jsi
23
+ # We need to link different libraries based on whether we are building rncore or not, that's necessary
24
+ # because we want to break a circular dependency between react_codegen_rncore and reactnative
25
+ reactnative
26
+ )
27
+
28
+ target_compile_options(
29
+ react_codegen_RNFBInstallationsTurboModules
30
+ PRIVATE
31
+ -DLOG_TAG=\"ReactNative\"
32
+ -fexceptions
33
+ -frtti
34
+ -std=c++20
35
+ -Wall
36
+ )
@@ -0,0 +1,44 @@
1
+
2
+ /**
3
+ * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
4
+ *
5
+ * Do not edit this file as changes may cause incorrect behavior and will be lost
6
+ * once the code is regenerated.
7
+ *
8
+ * @generated by codegen project: GenerateModuleJniCpp.js
9
+ */
10
+
11
+ #include "RNFBInstallationsTurboModules.h"
12
+
13
+ namespace facebook::react {
14
+
15
+ static facebook::jsi::Value __hostFunction_NativeRNFBTurboInstallationsSpecJSI_deleteInstallations(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
16
+ static jmethodID cachedMethodId = nullptr;
17
+ return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, PromiseKind, "deleteInstallations", "(Ljava/lang/String;Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
18
+ }
19
+
20
+ static facebook::jsi::Value __hostFunction_NativeRNFBTurboInstallationsSpecJSI_getId(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
21
+ static jmethodID cachedMethodId = nullptr;
22
+ return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, PromiseKind, "getId", "(Ljava/lang/String;Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
23
+ }
24
+
25
+ static facebook::jsi::Value __hostFunction_NativeRNFBTurboInstallationsSpecJSI_getToken(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
26
+ static jmethodID cachedMethodId = nullptr;
27
+ return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, PromiseKind, "getToken", "(Ljava/lang/String;ZLcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
28
+ }
29
+
30
+ NativeRNFBTurboInstallationsSpecJSI::NativeRNFBTurboInstallationsSpecJSI(const JavaTurboModule::InitParams &params)
31
+ : JavaTurboModule(params) {
32
+ methodMap_["deleteInstallations"] = MethodMetadata {1, __hostFunction_NativeRNFBTurboInstallationsSpecJSI_deleteInstallations};
33
+ methodMap_["getId"] = MethodMetadata {1, __hostFunction_NativeRNFBTurboInstallationsSpecJSI_getId};
34
+ methodMap_["getToken"] = MethodMetadata {2, __hostFunction_NativeRNFBTurboInstallationsSpecJSI_getToken};
35
+ }
36
+
37
+ std::shared_ptr<TurboModule> RNFBInstallationsTurboModules_ModuleProvider(const std::string &moduleName, const JavaTurboModule::InitParams &params) {
38
+ if (moduleName == "NativeRNFBTurboInstallations") {
39
+ return std::make_shared<NativeRNFBTurboInstallationsSpecJSI>(params);
40
+ }
41
+ return nullptr;
42
+ }
43
+
44
+ } // namespace facebook::react
@@ -0,0 +1,31 @@
1
+
2
+ /**
3
+ * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
4
+ *
5
+ * Do not edit this file as changes may cause incorrect behavior and will be lost
6
+ * once the code is regenerated.
7
+ *
8
+ * @generated by codegen project: GenerateModuleJniH.js
9
+ */
10
+
11
+ #pragma once
12
+
13
+ #include <ReactCommon/JavaTurboModule.h>
14
+ #include <ReactCommon/TurboModule.h>
15
+ #include <jsi/jsi.h>
16
+
17
+ namespace facebook::react {
18
+
19
+ /**
20
+ * JNI C++ class for module 'NativeRNFBTurboInstallations'
21
+ */
22
+ class JSI_EXPORT NativeRNFBTurboInstallationsSpecJSI : public JavaTurboModule {
23
+ public:
24
+ NativeRNFBTurboInstallationsSpecJSI(const JavaTurboModule::InitParams &params);
25
+ };
26
+
27
+
28
+ JSI_EXPORT
29
+ std::shared_ptr<TurboModule> RNFBInstallationsTurboModules_ModuleProvider(const std::string &moduleName, const JavaTurboModule::InitParams &params);
30
+
31
+ } // namespace facebook::react
@@ -0,0 +1,42 @@
1
+ /**
2
+ * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
3
+ *
4
+ * Do not edit this file as changes may cause incorrect behavior and will be lost
5
+ * once the code is regenerated.
6
+ *
7
+ * @generated by codegen project: GenerateModuleCpp.js
8
+ */
9
+
10
+ #include "RNFBInstallationsTurboModulesJSI.h"
11
+
12
+ namespace facebook::react {
13
+
14
+ static jsi::Value __hostFunction_NativeRNFBTurboInstallationsCxxSpecJSI_deleteInstallations(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
15
+ return static_cast<NativeRNFBTurboInstallationsCxxSpecJSI *>(&turboModule)->deleteInstallations(
16
+ rt,
17
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt)
18
+ );
19
+ }
20
+ static jsi::Value __hostFunction_NativeRNFBTurboInstallationsCxxSpecJSI_getId(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
21
+ return static_cast<NativeRNFBTurboInstallationsCxxSpecJSI *>(&turboModule)->getId(
22
+ rt,
23
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt)
24
+ );
25
+ }
26
+ static jsi::Value __hostFunction_NativeRNFBTurboInstallationsCxxSpecJSI_getToken(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
27
+ return static_cast<NativeRNFBTurboInstallationsCxxSpecJSI *>(&turboModule)->getToken(
28
+ rt,
29
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt),
30
+ count <= 1 ? throw jsi::JSError(rt, "Expected argument in position 1 to be passed") : args[1].asBool()
31
+ );
32
+ }
33
+
34
+ NativeRNFBTurboInstallationsCxxSpecJSI::NativeRNFBTurboInstallationsCxxSpecJSI(std::shared_ptr<CallInvoker> jsInvoker)
35
+ : TurboModule("NativeRNFBTurboInstallations", jsInvoker) {
36
+ methodMap_["deleteInstallations"] = MethodMetadata {1, __hostFunction_NativeRNFBTurboInstallationsCxxSpecJSI_deleteInstallations};
37
+ methodMap_["getId"] = MethodMetadata {1, __hostFunction_NativeRNFBTurboInstallationsCxxSpecJSI_getId};
38
+ methodMap_["getToken"] = MethodMetadata {2, __hostFunction_NativeRNFBTurboInstallationsCxxSpecJSI_getToken};
39
+ }
40
+
41
+
42
+ } // namespace facebook::react
@@ -0,0 +1,89 @@
1
+ /**
2
+ * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
3
+ *
4
+ * Do not edit this file as changes may cause incorrect behavior and will be lost
5
+ * once the code is regenerated.
6
+ *
7
+ * @generated by codegen project: GenerateModuleH.js
8
+ */
9
+
10
+ #pragma once
11
+
12
+ #include <ReactCommon/TurboModule.h>
13
+ #include <react/bridging/Bridging.h>
14
+
15
+ namespace facebook::react {
16
+
17
+
18
+ class JSI_EXPORT NativeRNFBTurboInstallationsCxxSpecJSI : public TurboModule {
19
+ protected:
20
+ NativeRNFBTurboInstallationsCxxSpecJSI(std::shared_ptr<CallInvoker> jsInvoker);
21
+
22
+ public:
23
+ virtual jsi::Value deleteInstallations(jsi::Runtime &rt, jsi::String appName) = 0;
24
+ virtual jsi::Value getId(jsi::Runtime &rt, jsi::String appName) = 0;
25
+ virtual jsi::Value getToken(jsi::Runtime &rt, jsi::String appName, bool forceRefresh) = 0;
26
+
27
+ };
28
+
29
+ template <typename T>
30
+ class JSI_EXPORT NativeRNFBTurboInstallationsCxxSpec : public TurboModule {
31
+ public:
32
+ jsi::Value create(jsi::Runtime &rt, const jsi::PropNameID &propName) override {
33
+ return delegate_.create(rt, propName);
34
+ }
35
+
36
+ std::vector<jsi::PropNameID> getPropertyNames(jsi::Runtime& runtime) override {
37
+ return delegate_.getPropertyNames(runtime);
38
+ }
39
+
40
+ static constexpr std::string_view kModuleName = "NativeRNFBTurboInstallations";
41
+
42
+ protected:
43
+ NativeRNFBTurboInstallationsCxxSpec(std::shared_ptr<CallInvoker> jsInvoker)
44
+ : TurboModule(std::string{NativeRNFBTurboInstallationsCxxSpec::kModuleName}, jsInvoker),
45
+ delegate_(reinterpret_cast<T*>(this), jsInvoker) {}
46
+
47
+
48
+ private:
49
+ class Delegate : public NativeRNFBTurboInstallationsCxxSpecJSI {
50
+ public:
51
+ Delegate(T *instance, std::shared_ptr<CallInvoker> jsInvoker) :
52
+ NativeRNFBTurboInstallationsCxxSpecJSI(std::move(jsInvoker)), instance_(instance) {
53
+
54
+ }
55
+
56
+ jsi::Value deleteInstallations(jsi::Runtime &rt, jsi::String appName) override {
57
+ static_assert(
58
+ bridging::getParameterCount(&T::deleteInstallations) == 2,
59
+ "Expected deleteInstallations(...) to have 2 parameters");
60
+
61
+ return bridging::callFromJs<jsi::Value>(
62
+ rt, &T::deleteInstallations, jsInvoker_, instance_, std::move(appName));
63
+ }
64
+ jsi::Value getId(jsi::Runtime &rt, jsi::String appName) override {
65
+ static_assert(
66
+ bridging::getParameterCount(&T::getId) == 2,
67
+ "Expected getId(...) to have 2 parameters");
68
+
69
+ return bridging::callFromJs<jsi::Value>(
70
+ rt, &T::getId, jsInvoker_, instance_, std::move(appName));
71
+ }
72
+ jsi::Value getToken(jsi::Runtime &rt, jsi::String appName, bool forceRefresh) override {
73
+ static_assert(
74
+ bridging::getParameterCount(&T::getToken) == 3,
75
+ "Expected getToken(...) to have 3 parameters");
76
+
77
+ return bridging::callFromJs<jsi::Value>(
78
+ rt, &T::getToken, jsInvoker_, instance_, std::move(appName), std::move(forceRefresh));
79
+ }
80
+
81
+ private:
82
+ friend class NativeRNFBTurboInstallationsCxxSpec;
83
+ T *instance_;
84
+ };
85
+
86
+ Delegate delegate_;
87
+ };
88
+
89
+ } // namespace facebook::react
@@ -17,13 +17,88 @@
17
17
  *
18
18
  */
19
19
 
20
- // Export modular/public types.
20
+ import { isIOS } from '@react-native-firebase/app/dist/module/common';
21
+ import { FirebaseModule, getOrCreateModularInstance } from '@react-native-firebase/app/dist/module/internal';
22
+ import "./types/internal.js";
23
+ import { version } from "./version.js";
24
+ const nativeModuleName = 'NativeRNFBTurboInstallations';
25
+ class FirebaseInstallationsModule extends FirebaseModule {
26
+ getId() {
27
+ return this.native.getId();
28
+ }
29
+ getToken(forceRefresh) {
30
+ if (!forceRefresh) {
31
+ return this.native.getToken(false);
32
+ } else {
33
+ return this.native.getToken(true);
34
+ }
35
+ }
36
+ delete() {
37
+ return this.native.deleteInstallations();
38
+ }
39
+ onIdChange() {
40
+ if (isIOS) {
41
+ return () => {};
42
+ }
21
43
 
22
- // Export modular API functions.
23
- export * from "./modular.js";
44
+ // TODO implement change listener on Android
45
+ return () => {};
46
+ }
47
+ }
48
+ const config = {
49
+ namespace: 'installations',
50
+ nativeModuleName,
51
+ nativeEvents: false,
52
+ // TODO implement android id change listener: ['installations_id_changed'],
53
+ hasMultiAppSupport: true,
54
+ hasCustomUrlOrRegionSupport: false,
55
+ turboModule: true
56
+ };
24
57
 
25
- // Export namespaced API.
58
+ /**
59
+ * RN Firebase package version string exported from the modular entry point.
60
+ *
61
+ * The firebase-js-sdk does not export `SDK_VERSION` from `@firebase/installations`.
62
+ */
63
+ export const SDK_VERSION = version;
64
+
65
+ /**
66
+ * Returns the {@link Installations} instance for the default or given {@link FirebaseApp}.
67
+ *
68
+ * @param app - The Firebase `FirebaseApp` to use. When omitted, the default app is used.
69
+ * @returns The Installations service instance for that app.
70
+ */
71
+ export function getInstallations(app) {
72
+ return getOrCreateModularInstance(FirebaseInstallationsModule, config, app);
73
+ }
74
+
75
+ /**
76
+ * Deletes the Firebase Installation and all associated data.
77
+ */
78
+ export function deleteInstallations(installations) {
79
+ return installations.delete();
80
+ }
26
81
 
27
- export * from "./namespaced.js";
28
- export { default } from "./namespaced.js";
82
+ /**
83
+ * Creates a Firebase Installation if there isn't one for the app and returns the Installation ID.
84
+ */
85
+ export function getId(installations) {
86
+ return installations.getId();
87
+ }
88
+
89
+ /**
90
+ * Returns a Firebase Installations auth token, identifying the current Firebase Installation.
91
+ */
92
+ export function getToken(installations, forceRefresh) {
93
+ return installations.getToken(forceRefresh);
94
+ }
95
+
96
+ /**
97
+ * Throw an error since react-native-firebase does not support this method.
98
+ *
99
+ * Sets a new callback that will get called when Installation ID changes. Returns an unsubscribe function that will remove the callback when called.
100
+ */
101
+ export function onIdChange(_installations, _callback) {
102
+ throw new Error('onIdChange() is unsupported by the React Native Firebase SDK.');
103
+ }
29
104
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["default"],"sourceRoot":"../../lib","sources":["index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAGA;AACA,cAAc,cAAW;;AAEzB;;AAEA,cAAc,iBAAc;AAC5B,SAASA,OAAO,QAAQ,iBAAc","ignoreList":[]}
1
+ {"version":3,"names":["isIOS","FirebaseModule","getOrCreateModularInstance","version","nativeModuleName","FirebaseInstallationsModule","getId","native","getToken","forceRefresh","delete","deleteInstallations","onIdChange","config","namespace","nativeEvents","hasMultiAppSupport","hasCustomUrlOrRegionSupport","turboModule","SDK_VERSION","getInstallations","app","installations","_installations","_callback","Error"],"sourceRoot":"../../lib","sources":["index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,KAAK,QAAQ,+CAA+C;AACrE,SACEC,cAAc,EACdC,0BAA0B,QACrB,iDAAiD;AAExD,OAAO,qBAAkB;AAQzB,SAASC,OAAO,QAAQ,cAAW;AAEnC,MAAMC,gBAAgB,GAAG,8BAA8B;AAEvD,MAAMC,2BAA2B,SAASJ,cAAc,CAA0B;EAChFK,KAAKA,CAAA,EAAoB;IACvB,OAAO,IAAI,CAACC,MAAM,CAACD,KAAK,CAAC,CAAC;EAC5B;EAEAE,QAAQA,CAACC,YAAsB,EAAmB;IAChD,IAAI,CAACA,YAAY,EAAE;MACjB,OAAO,IAAI,CAACF,MAAM,CAACC,QAAQ,CAAC,KAAK,CAAC;IACpC,CAAC,MAAM;MACL,OAAO,IAAI,CAACD,MAAM,CAACC,QAAQ,CAAC,IAAI,CAAC;IACnC;EACF;EAEAE,MAAMA,CAAA,EAAkB;IACtB,OAAO,IAAI,CAACH,MAAM,CAACI,mBAAmB,CAAC,CAAC;EAC1C;EAEAC,UAAUA,CAAA,EAAe;IACvB,IAAIZ,KAAK,EAAE;MACT,OAAO,MAAM,CAAC,CAAC;IACjB;;IAEA;IACA,OAAO,MAAM,CAAC,CAAC;EACjB;AACF;AAEA,MAAMa,MAAoB,GAAG;EAC3BC,SAAS,EAAE,eAAe;EAC1BV,gBAAgB;EAChBW,YAAY,EAAE,KAAK;EAAE;EACrBC,kBAAkB,EAAE,IAAI;EACxBC,2BAA2B,EAAE,KAAK;EAClCC,WAAW,EAAE;AACf,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,WAAW,GAAGhB,OAAO;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASiB,gBAAgBA,CAACC,GAAiB,EAAiB;EACjE,OAAOnB,0BAA0B,CAC/BG,2BAA2B,EAC3BQ,MAAM,EACNQ,GACF,CAAC;AACH;;AAEA;AACA;AACA;AACA,OAAO,SAASV,mBAAmBA,CAACW,aAA4B,EAAiB;EAC/E,OAAQA,aAAa,CAA2BZ,MAAM,CAAC,CAAC;AAC1D;;AAEA;AACA;AACA;AACA,OAAO,SAASJ,KAAKA,CAACgB,aAA4B,EAAmB;EACnE,OAAQA,aAAa,CAA2BhB,KAAK,CAAC,CAAC;AACzD;;AAEA;AACA;AACA;AACA,OAAO,SAASE,QAAQA,CAACc,aAA4B,EAAEb,YAAsB,EAAmB;EAC9F,OAAQa,aAAa,CAA2Bd,QAAQ,CAACC,YAAY,CAAC;AACxE;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASG,UAAUA,CACxBW,cAA6B,EAC7BC,SAA6B,EACN;EACvB,MAAM,IAAIC,KAAK,CAAC,+DAA+D,CAAC;AAClF","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
 
3
3
  // Generated by genversion.
4
- export const version = '25.1.0';
4
+ export const version = '26.1.0';
5
5
  //# sourceMappingURL=version.js.map