Description
[EDITED by @mikehardy 20200913]: it appears the pods 6.28 may work fine with our @react-native-firebase/crashlytics@^8.4.2
, but that pods 6.31 does not. This is an area of active investigation. But you may try overriding pods to 6.28 for now. https://rnfirebase.io/#ios
Original issue follows:
Issue
I just upgraded @react-native-firebase/crashlytics
from 6.4.0
to 8.4.2
. Crash report from iOS didn't displayed on Firebase Console Dashboard.
What I've Done
- Read [RESOLVED we think] 🔥 Crashlytics 8.0.1 not collecting on iOS #3879
- removed all fabric related code/config from
xschme
,project.pbxproj
,podfile
,podfile.lock
- added
firebase.json
- ran
crashlytics().setCrashlyticsCollectionEnabled(true);
in app code - triggered crash using
crashlytics().crash()
- Built on Debug and Release mode.
- Last but not least, wait 8 hours
After all things i've done, nothing resulted to displaying error on my Firebase Console.
This log displayed immediately after app builded and ran on my phone.
[Firebase/Crashlytics] Version 4.4.0
6.30.0 - [Firebase/Crashlytics][I-CLS000000] [Crashlytics] Running on iPhone9,3, 13.7.0 (17H35)
6.30.0 - [Firebase/Crashlytics][I-CLS000000] Root: /var/mobile/Containers/Data/Application/7529E6A5-A2B7-42E4-929B-AF26A1E622AA/Library/Caches/com.crashlytics.data/id.flip.debug
6.30.0 - [Firebase/Crashlytics][I-CLS000000] [Crashlytics:Crash:Reports:Event] Registered Firebase Analytics event listener
6.30.0 - [Firebase/Crashlytics][I-CLS000000] Automatic data collection is disabled.
6.30.0 - [Firebase/Crashlytics][I-CLS000000] [Crashlytics:Crash] There are no unsent reports.
Sometimes, 1 unsent reports are available. Checking for upload permission.
displayed on console. But, nothing happened after I trigger crashlytics().sendUnsentReports();
[Firebase/Crashlytics] Version 4.4.0
6.30.0 - [Firebase/Crashlytics][I-CLS000000] [Crashlytics] Running on iPhone9,3, 13.7.0 (17H35)
6.30.0 - [Firebase/Crashlytics][I-CLS000000] [Crashlytics:Settings] No settings were cached
se/Crashlytics][I-CLS000000] Root: /var/mobile/Containers/Data/Application/AE3C2DEF-A21A-4722-8F8F-E4B24DDBC49A/Library/Caches/com.crashlytics.data/id.flip.debug
6.30.0 - [Firebase/Crashlytics][I-CLS000000] [Crashlytics:Crash:Reports:Event] Registered Firebase Analytics event listener
6.30.0 - [Firebase/Crashlytics][I-CLS000000] Automatic data collection is disabled.
6.30.0 - [Firebase/Crashlytics][I-CLS000000] [Crashlytics:Crash] 1 unsent reports are available. Checking for upload permission.
6.30.0 - [Firebase/Crashlytics][I-CLS000000] [Crashlytics:Crash] Notifying that unsent reports are available.
6.30.0 - [Firebase/Crashlytics][I-CLS000000] [Crashlytics:Crash] Waiting for send/deleteUnsentReports to be called.
I also followed this suggestion. I added
<key>FirebaseCrashlyticsCollectionEnabled</key>
<true/>
to Info.plist
and it gave result.
[Firebase/Crashlytics] Version 4.4.0
6.30.0 - [Firebase/Crashlytics][I-CLS000000] [Crashlytics] Running on iPhone9,3, 13.7.0 (17H35)
6.30.0 - [Firebase/Crashlytics][I-CLS000000] Root: /var/mobile/Containers/Data/Application/B14705F3-E1B1-4C0A-87F0-979DB5891E46/Library/Caches/com.crashlytics.data/id.flip.debug
6.30.0 - [Firebase/Crashlytics][I-CLS000000] [Crashlytics:Crash:Reports:Event] Registered Firebase Analytics event listener
6.30.0 - [Firebase/Crashlytics][I-CLS000000] Automatic data collection is enabled.
6.30.0 - [Firebase/Crashlytics][I-CLS000000] Unsent reports will be uploaded at startup
we may highlighted Automatic data collection is enabled.
but no crash appeared on firebase console.
On device log, It displayed this error
Project Files
Javascript
Click To Expand
package.json
:
"dependencies": {
"@react-native-community/async-storage": "^1.8.1",
"@react-native-community/cameraroll": "^1.7.2",
"@react-native-community/netinfo": "^5.6.2",
"@react-native-community/push-notification-ios": "^1.0.7",
"@react-native-community/viewpager": "^3.3.0",
"@react-native-firebase/analytics": "^7.6.1",
"@react-native-firebase/app": "^8.4.1",
"@react-native-firebase/crashlytics": "^8.4.2",
"@react-native-firebase/dynamic-links": "^7.5.2",
"@react-native-firebase/in-app-messaging": "^7.4.2",
"@react-native-firebase/messaging": "^7.8.4",
"@react-native-firebase/perf": "^7.4.2",
"@react-native-firebase/remote-config": "^9.0.3",
"appcenter": "^3.0.0",
"appcenter-analytics": "^3.0.0",
"appcenter-crashes": "^3.0.0",
"apsl-react-native-button": "^3.1.1",
"assert": "^1.4.1",
"babel-plugin-transform-remove-console": "^6.8.5",
"crypto-js": "^3.1.9-1",
"lodash": "^4.17.15",
"lottie-ios": "^3.1.8",
"lottie-react-native": "^3.4.0",
"memoize-one": "^5.1.1",
"moment": "^2.15.0",
"moment-timezone": "^0.5.31",
"prop-types": "^15.7.2",
"react": "16.9.0",
"react-native": "^0.61.5",
"react-native-appsflyer": "^5.2.0",
"react-native-check-box": "^2.1.7",
"react-native-code-push": "^6.1.0",
"react-native-collapsible": "^1.5.1",
"react-native-config": "^0.11.7",
"react-native-device-info": "^5.3.1",
"react-native-emoji": "git+https://github.com/jorilallo/react-native-emoji.git",
"react-native-fbsdk": "^1.1.2",
"react-native-freshchat-sdk": "2.6.3",
"react-native-gesture-handler": "^1.3.0",
"react-native-hyperlink": "0.0.19",
"react-native-image-picker": "git+https://github.com/abdullahizzuddiin/react-native-image-picker.git",
"react-native-intercom": "^13.2.0",
"react-native-keyboard-aware-scroll-view": "^0.9.1",
"react-native-linear-gradient": "^2.5.6",
"react-native-material-dropdown": "^0.11.1",
"react-native-modalbox": "^2.0.0",
"react-native-onesignal": "git+https://github.com/abdullahizzuddiin/react-native-onesignal.git",
"react-native-photo-view": "git+https://github.com/alwx/react-native-photo-view.git",
"react-native-reanimated": "^1.7.0",
"react-native-router-flux": "^4.2.0",
"react-native-screens": "^2.3.0",
"react-native-scrollable-tab-view": "git+https://github.com/abdullahizzuddiin/react-native-scrollable-tab-view.git",
"react-native-select-contact": "^1.3.2",
"react-native-simple-toast": "^1.0.0",
"react-native-spinkit": "^1.5.0",
"react-redux": "^7.2.0",
"redux": "^4.0.5",
"redux-thunk": "^2.3.0",
"rn-fetch-blob": "^0.12.0",
"stream-browserify": "^2.0.1",
"timers-browserify": "^2.0.10",
"tty-browserify": "0.0.1",
"url": "^0.11.0",
"vm-browserify": "1.0.1",
"warning": "^3.0.0"
},
"devDependencies": {
"@babel/core": "^7.6.2",
"@babel/runtime": "^7.6.2",
"@react-native-community/eslint-config": "^0.0.5",
"@typescript-eslint/eslint-plugin": "^3.8.0",
"@typescript-eslint/parser": "^3.8.0",
"babel-jest": "^24.9.0",
"babel-plugin-module-resolver": "^4.0.0",
"eslint": "^6.5.1",
"eslint-import-resolver-babel-module": "^5.1.2",
"eslint-plugin-import": "^2.22.0",
"eslint-plugin-module-resolver": "^1.0.0",
"eslint-plugin-react-native": "^3.8.1",
"jest": "^24.9.0",
"jetifier": "^1.6.3",
"metro-react-native-babel-preset": "^0.56.0",
"react-devtools": "3.6.2",
"react-test-renderer": "16.9.0",
"reactotron-react-native": "^2.1.0",
"typescript": "^3.9.7"
}
firebase.json
for react-native-firebase v6:
{
"react-native": {
"crashlytics_debug_enabled": true,
"crashlytics_disable_auto_disabler": true,
}
}
iOS
Click To Expand
ios/Podfile
:
- I'm not using Pods
- I'm using Pods and my Podfile looks like:
# Uncomment the next line to define a global platform for your project
platform :ios, '10.0'
require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'
target 'AppName' do
# Pods for your project
pod 'FBLazyVector', :path => "../node_modules/react-native/Libraries/FBLazyVector"
pod 'FBReactNativeSpec', :path => "../node_modules/react-native/Libraries/FBReactNativeSpec"
pod 'RCTRequired', :path => "../node_modules/react-native/Libraries/RCTRequired"
pod 'RCTTypeSafety', :path => "../node_modules/react-native/Libraries/TypeSafety"
pod 'React', :path => "../node_modules/react-native/"
pod 'React-Core', :path => "../node_modules/react-native/"
pod 'React-CoreModules', :path => "../node_modules/react-native/React/CoreModules"
pod 'React-Core/DevSupport', :path => "../node_modules/react-native/"
pod 'React-RCTActionSheet', :path => "../node_modules/react-native/Libraries/ActionSheetIOS"
pod 'React-RCTAnimation', :path => "../node_modules/react-native/Libraries/NativeAnimation"
pod 'React-RCTBlob', :path => "../node_modules/react-native/Libraries/Blob"
pod 'React-RCTImage', :path => "../node_modules/react-native/Libraries/Image"
pod 'React-RCTLinking', :path => "../node_modules/react-native/Libraries/LinkingIOS"
pod 'React-RCTNetwork', :path => "../node_modules/react-native/Libraries/Network"
pod 'React-RCTSettings', :path => "../node_modules/react-native/Libraries/Settings"
pod 'React-RCTText', :path => "../node_modules/react-native/Libraries/Text"
pod 'React-RCTVibration', :path => "../node_modules/react-native/Libraries/Vibration"
pod 'React-Core/RCTWebSocket', :path => "../node_modules/react-native/"
pod 'React-cxxreact', :path => "../node_modules/react-native/ReactCommon/cxxreact"
pod 'React-jsi', :path => "../node_modules/react-native/ReactCommon/jsi"
pod 'React-jsiexecutor', :path => "../node_modules/react-native/ReactCommon/jsiexecutor"
pod 'React-jsinspector', :path => "../node_modules/react-native/ReactCommon/jsinspector"
pod 'ReactCommon/jscallinvoker', :path => "../node_modules/react-native/ReactCommon"
pod 'ReactCommon/turbomodule/core', :path => "../node_modules/react-native/ReactCommon"
pod 'Yoga', :path => "../node_modules/react-native/ReactCommon/yoga"
pod 'DoubleConversion', :podspec => "../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec"
pod 'glog', :podspec => "../node_modules/react-native/third-party-podspecs/glog.podspec"
pod 'Folly', :podspec => "../node_modules/react-native/third-party-podspecs/Folly.podspec"
# Uncomment the next line if you're using Swift or would like to use dynamic frameworks
# use_frameworks!
# Pods for AppName
pod 'AppCenter/Crashes'
pod 'AppCenter/Analytics'
pod 'AppCenterReactNativeShared'
pod 'FBSDKLoginKit'
pod 'FBSDKShareKit'
pod 'Intercom'
pod 'ZendeskSupportSDK'
pod 'OneSignal', '>= 2.14.2', '< 3.0'
pod 'RNDeviceInfo', :path => '../node_modules/react-native-device-info'
pod 'RNCPushNotificationIOS', :path => '../node_modules/@react-native-community/push-notification-ios'
pod 'RCTSelectContact', :path => '../node_modules/react-native-select-contact'
pod 'react-native-cameraroll', :path => '../node_modules/@react-native-community/cameraroll'
target 'AppNameTests' do
inherit! :search_paths
# Pods for testing
end
use_native_modules!
post_install do |installer|
installer.pods_project.targets.each do |target|
if target.name == 'react-native-config'
phase = target.project.new(Xcodeproj::Project::Object::PBXShellScriptBuildPhase)
phase.shell_script = "cd ../../"\
" && RNC_ROOT=./node_modules/react-native-config/"\
" && export SYMROOT=$RNC_ROOT/ios/ReactNativeConfig"\
" && export BUILD_DIR=$RNC_ROOT/ios/ReactNativeConfig"\
" && ruby $RNC_ROOT/ios/ReactNativeConfig/BuildDotenvConfig.ruby"
target.build_phases << phase
target.build_phases.move(phase,0)
end
if target.name == "React"
target.remove_from_project
end
end
end
end
target 'AppName-tvOS' do
# Uncomment the next line if you're using Swift or would like to use dynamic frameworks
# use_frameworks!
# Pods for AppName-tvOS
target 'AppName-tvOSTests' do
inherit! :search_paths
# Pods for testing
end
end
target 'OneSignalNotificationServiceExtension' do
pod 'OneSignal', '>= 2.14.2', '< 3.0'
end
pre_install do |installer|
# workaround for https://github.com/CocoaPods/CocoaPods/issues/3289
Pod::Installer::Xcode::TargetValidator.send(:define_method, :verify_no_static_framework_transitive_dependencies) {}
end
AppDelegate.m
:
/*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
#import <React/RCTBridge.h>
#import <React/RCTLog.h>
#import "Intercom/intercom.h"
#import "FreshchatSDK.h"
#import "AppDelegate.h"
#import <AppCenterReactNative.h>
#import <AppCenterReactNativeAnalytics.h>
#import <AppCenterReactNativeCrashes.h>
#import <CodePush/CodePush.h>
#import <FBSDKCoreKit/FBSDKCoreKit.h>
#import <RNCPushNotificationIOS.h>
#import <React/RCTLinkingManager.h>
#if __has_include(<AppsFlyerLib/AppsFlyerTracker.h>)
#import <AppsFlyerLib/AppsFlyerTracker.h>
#else
#import "AppsFlyerTracker.h"
#endif
#import <React/RCTBundleURLProvider.h>
#import <React/RCTRootView.h>
@import SupportSDK;
@import ZendeskCoreSDK;
@import Firebase;
@import AppsFlyerLib;
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//enable debug on release mode, disable when release to user or in debug mode
//RCTSetLogThreshold(RCTLogLevelInfo - 1);
// Intercom
[Intercom setApiKey:@""];
// Dynamic Links
[FIROptions defaultOptions].deepLinkURLScheme = @"id.AppName.release";
// Firebase init
[FIRApp configure];
// Freshchat init
NSString *FRESHCHAT_APP_ID = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"FreshchatAppId"];
NSString *FRESHCHAT_APP_KEY = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"FreshchatAppKey"];
FreshchatConfig *config = [[FreshchatConfig alloc]initWithAppID:FRESHCHAT_APP_ID andAppKey:FRESHCHAT_APP_KEY];
config.gallerySelectionEnabled = YES;
config.cameraCaptureEnabled = YES;
config.teamMemberInfoVisible = YES;
config.showNotificationBanner = YES;
config.responseExpectationVisible = YES;
config.domain = @"msdk.au.freshchat.com";
[[Freshchat sharedInstance] initWithConfig:config];
[ZDKZendesk initializeWithAppId: @""
clientId: @""
zendeskUrl: @""];
[ZDKSupport initializeWithZendesk: [ZDKZendesk instance]];
id<ZDKObjCIdentity> userIdentity = [[ZDKObjCAnonymous alloc] initWithName:nil email:nil];
[[ZDKZendesk instance] setIdentity:userIdentity];
[AppCenterReactNativeCrashes registerWithAutomaticProcessing]; // Initialize AppCenter crashes
[AppCenterReactNativeAnalytics registerWithInitiallyEnabled:true]; // Initialize AppCenter analytics
[AppCenterReactNative register]; // Initialize AppCenter
[[FBSDKApplicationDelegate sharedInstance] application:application
didFinishLaunchingWithOptions:launchOptions];
RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions];
RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge
moduleName:@"AppName"
initialProperties:nil];
// Sentry init
UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
center.delegate = self;
rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1];
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
UIViewController *rootViewController = [UIViewController new];
rootViewController.view = rootView;
self.window.rootViewController = rootViewController;
[self.window makeKeyAndVisible];
return YES;
}
- (BOOL)application:(UIApplication *)application
openURL:(NSURL *)url
options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {
[[AppsFlyerTracker sharedTracker] handleOpenUrl:url options:options];
BOOL handled = [[FBSDKApplicationDelegate sharedInstance] application:application
openURL:url
sourceApplication:options[UIApplicationOpenURLOptionsSourceApplicationKey]
annotation:options[UIApplicationOpenURLOptionsAnnotationKey]
];
return handled;
}
//Universal Links (iOS 9 +)
- (BOOL)application:(UIApplication *)application continueUserActivity:(nonnull NSUserActivity *)userActivity restorationHandler:(nonnull void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler {
[[AppsFlyerTracker sharedTracker] continueUserActivity:userActivity restorationHandler:restorationHandler];
return YES;
}
- (void)applicationDidBecomeActive:(UIApplication *)application{
/* Reset badge app count if so desired */
}
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken{
[RNCPushNotificationIOS didRegisterForRemoteNotificationsWithDeviceToken:deviceToken];
// notify AppsFlyerTracker
[[AppsFlyerTracker sharedTracker] registerUninstall:deviceToken];
// Intercom
[Intercom setDeviceToken:deviceToken];
// Freshchat
[[Freshchat sharedInstance] setPushRegistrationToken:deviceToken];
}
- (void) application:(UIApplication *)app didReceiveRemoteNotification:(NSDictionary *)info{
}
// onesignal background notification
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
{
[RNCPushNotificationIOS didReceiveRemoteNotification:userInfo fetchCompletionHandler:completionHandler];
[self processPaymentInfo: userInfo];
if ([[Freshchat sharedInstance]isFreshchatNotification:userInfo]) {
[[Freshchat sharedInstance]handleRemoteNotification:userInfo andAppstate:application.applicationState];
}
}
/* For devices running on ios 10 and above */
- (void)userNotificationCenter:(UNUserNotificationCenter *)center
willPresentNotification:(UNNotification *)notification
withCompletionHandler:(void (^)(UNNotificationPresentationOptions options))completionHandler {
if ([[Freshchat sharedInstance]isFreshchatNotification:notification.request.content.userInfo]) {
[[Freshchat sharedInstance]handleRemoteNotification:notification.request.content.userInfo andAppstate:[[UIApplication sharedApplication] applicationState]];
completionHandler( UNAuthorizationOptionSound );
} else {
completionHandler( UNAuthorizationOptionAlert | UNAuthorizationOptionSound | UNAuthorizationOptionBadge );
}
}
/* For devices running on ios 10 and above */
- (void)userNotificationCenter:(UNUserNotificationCenter *)center
didReceiveNotificationResponse:(UNNotificationResponse *)response
withCompletionHandler:(void (^)(void))completionHandler {
if ([[Freshchat sharedInstance]isFreshchatNotification:response.notification.request.content.userInfo]) {
[[Freshchat sharedInstance]handleRemoteNotification:response.notification.request.content.userInfo andAppstate:[[UIApplication sharedApplication] applicationState]];
}
completionHandler();
}
- (void)application:(UIApplication *)application didRegisterUserNotificationSettings:(UIUserNotificationSettings *)notificationSettings
{
[RNCPushNotificationIOS didRegisterUserNotificationSettings:notificationSettings];
}
// Required for the registrationError event.
- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error
{
[RNCPushNotificationIOS didFailToRegisterForRemoteNotificationsWithError:error];
}
// Required for the localNotification event.
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
{
[RNCPushNotificationIOS didReceiveLocalNotification:notification];
}
- (void)processPaymentInfo:(NSDictionary *) additionalData
{
NSLog(@"ON NOTIFICATION PROCESSING");
NSLog(@"%@", additionalData);
NSLog(@"Finishing payment transaction");
@try {
int fee = [[additionalData valueForKey:@"biaya"] intValue];
int status = [[additionalData valueForKey:@"statusTransaksi"] intValue];
int transactionId = [[additionalData valueForKey:@"idTransaksi"] intValue];
int transactionType = [[additionalData valueForKey:@"jenis_transaksi"] intValue];
if (fee > 0 && status == 2) {
[self finishPayment:transactionId withFee:fee];
} else if (fee > 0 && status == 6 && transactionType == 6) {
[self refundPayment:transactionId withFee:fee];
}
} @catch (NSException* e) {
NSLog(@"Payment info exception => %@", e);
}
}
- (void)finishPayment:(int) transactionId withFee:(int) fee {
[FIRAnalytics logEventWithName:kFIREventEcommercePurchase parameters:@{
kFIRParameterTransactionID: [NSString stringWithFormat:@"%d", transactionId],
kFIRParameterValue: [NSString stringWithFormat:@"%d", fee],
kFIRParameterCurrency: @"IDR"
}];
}
- (void)refundPayment:(int) transactionId withFee:(int) fee {
[FIRAnalytics logEventWithName:kFIREventPurchaseRefund parameters:@{
kFIRParameterTransactionID: [NSString stringWithFormat:@"%d", transactionId],
kFIRParameterValue: [NSString stringWithFormat:@"%d", fee],
kFIRParameterCurrency: @"IDR"
}];
}
- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge
{
#if DEBUG
return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil];
#else
return [CodePush bundleURL];
#endif
}
@end
Android
Click To Expand
Have you converted to AndroidX?
- my application is an AndroidX application?
- I am using
android/gradle.settings
jetifier=true
for Android compatibility? - I am using the NPM package
jetifier
for react-native compatibility?
android/build.gradle
:
// N/A
android/app/build.gradle
:
// N/A
android/settings.gradle
:
// N/A
MainApplication.java
:
// N/A
AndroidManifest.xml
:
<!-- N/A -->
Environment
Click To Expand
react-native info
output:
System:
OS: macOS 10.15.6
CPU: (4) x64 Intel(R) Core(TM) i5-5287U CPU @ 2.90GHz
Memory: 18.34 MB / 8.00 GB
Shell: 3.2.57 - /bin/bash
Binaries:
Node: 14.5.0 - /usr/local/bin/node
Yarn: 1.22.4 - /usr/local/bin/yarn
npm: 6.14.5 - /usr/local/bin/npm
Watchman: 4.9.0 - /usr/local/bin/watchman
IDEs:
Android Studio: 4.0 AI-193.6911.18.40.6626763
Xcode: /undefined - /usr/bin/xcodebuild
npmPackages:
react: 16.9.0 => 16.9.0
react-native: ^0.61.5 => 0.61.5
- Platform that you're experiencing the issue on:
- iOS
- Android
- iOS but have not tested behavior on Android
- Android but have not tested behavior on iOS
- Both
react-native-firebase
version you're using that has this issue:
"@react-native-firebase/analytics": "^7.6.1",
"@react-native-firebase/app": "^8.4.1",
"@react-native-firebase/crashlytics": "^8.4.2",
"@react-native-firebase/dynamic-links": "^7.5.2",
"@react-native-firebase/in-app-messaging": "^7.4.2",
"@react-native-firebase/messaging": "^7.8.4",
"@react-native-firebase/perf": "^7.4.2",
"@react-native-firebase/remote-config": "^9.0.3",
Firebase
module(s) you're using that has the issue:e.g. Instance ID
- Are you using
TypeScript
?N
- 👉 Check out
React Native Firebase
andInvertase
on Twitter for updates on the library.