React-native-firebase: 馃敟 Crashes get logged twice in Crashlytics

Created on 27 Aug 2020  路  9Comments  路  Source: invertase/react-native-firebase

Issue

With the latest react-native-firebase setup crashes are getting logged twice in Crashlytics - first as non-fatals and then as actual crashes. Looking at the code it seems to be intended:

  // from @react-native-firebase/crashlytics/lib/index.js
  constructor(...args) {
    super(...args);
    setGlobalErrorHandler(this.native); // <---- This guy is responsible :)
    setOnUnhandledPromiseRejectionHandler(this.native);
    this._isCrashlyticsCollectionEnabled = this.native.isCrashlyticsCollectionEnabled;
  }

I don't see any value in these non-fatals as the actual crashes contain more valuable information, allowing to desymbolicate them while the non-fatals don't. At the very least, this behavior must be optional. For now to opt out of it, I will have to make a patch for the crashlytics package.

Project Files

Javascript

Click To Expand

#### `package.json`:

"@react-native-firebase/analytics": "^7.5.1",
"@react-native-firebase/app": "^8.4.0",
"@react-native-firebase/crashlytics": "^8.4.1",
#### `firebase.json` for react-native-firebase v6:
# N/A
### iOS
Click To Expand

#### `ios/Podfile`: - [ ] I'm not using Pods - [x] I'm using Pods and my Podfile looks like:

# N/A
#### `AppDelegate.m`:
// N/A


Android

Click To Expand

#### Have you converted to AndroidX? - [X] my application is an AndroidX application? - [ ] I am using `android/gradle.settings` `jetifier=true` for Android compatibility? - [X] 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: (12) x64 Intel(R) Core(TM) i7-8850H CPU @ 2.60GHz
    Memory: 89.39 MB / 16.00 GB
    Shell: 5.7.1 - /bin/zsh
  Binaries:
    Node: 14.8.0 - ~/.nvm/versions/node/v14.8.0/bin/node
    Yarn: 1.22.4 - /usr/local/bin/yarn
    npm: 6.14.7 - ~/.nvm/versions/node/v14.8.0/bin/npm
    Watchman: 4.9.0 - /usr/local/bin/watchman
  SDKs:
    iOS SDK:
      Platforms: iOS 13.6, DriverKit 19.0, macOS 10.15, tvOS 13.4, watchOS 6.2
    Android SDK:
      API Levels: 26, 27, 28
      Build Tools: 27.0.3, 28.0.0, 28.0.2, 28.0.3, 29.0.0
      System Images: android-28 | Google Play Intel x86 Atom
  IDEs:
    Android Studio: 3.5 AI-191.8026.42.35.5977832
    Xcode: 11.6/11E708 - /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 - [X] **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:** - app@^8.4.0 - **`Firebase` module(s) you're using that has the issue:** - crashlytics@^8.4.1 - analytics@^7.5.1 - **Are you using `TypeScript`?** - No




General Bug Crashlytics Stale

All 9 comments

I don't see this behavior with RN62 and 63 at least, I wonder if something changed about how unhandled promise rejection works?

For me a native crash gives me a native fatal crash report, an unhandled promise rejection gives me a non-fatal, and nothing duplicated.

So I'm not sure, but I am at least one negative result for the hypothesis the code has an issue. What's the difference between projects? Unknown

Can you post an App.js that would demonstrate it simply? Just a crash button or unhandled promise and we can play with it

You didn't include enough of your project information to conclusively state you are not overriding the firebase SDKs so may we assume you are on android 25.7.0 and ios 6.31.0?

Hi, @mikehardy, thx for your quick reply :) As I have only been testing on iOS so far, here is my Podfile and Podfile.lock:

Click To Expand

platform :ios, '9.0'
require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'

target '#myTarget#' do
  # Pods for #myTarget#
  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-RCTPushNotification', :path => '../node_modules/react-native/Libraries/PushNotificationIOS'

  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'

  # React Native Maps dependencies
  rn_maps_path = '../node_modules/react-native-maps'
  pod 'react-native-google-maps', :path => rn_maps_path
  pod 'GoogleMaps'
  pod 'Google-Maps-iOS-Utils'

  target '#myTarget#Tests' do
    inherit! :search_paths
    # Pods for testing
  end

  use_native_modules!
end

target '#myTarget#-tvOS' do
  # Pods for #myTarget#-tvOS

  target '#myTarget#-tvOSTests' do
    inherit! :search_paths
    # Pods for testing
  end

end
PODS:
  - boost-for-react-native (1.63.0)
  - DoubleConversion (1.1.6)
  - FBLazyVector (0.61.5)
  - FBReactNativeSpec (0.61.5):
    - Folly (= 2018.10.22.00)
    - RCTRequired (= 0.61.5)
    - RCTTypeSafety (= 0.61.5)
    - React-Core (= 0.61.5)
    - React-jsi (= 0.61.5)
    - ReactCommon/turbomodule/core (= 0.61.5)
  - Firebase/Analytics (6.30.0):
    - Firebase/Core
  - Firebase/Core (6.30.0):
    - Firebase/CoreOnly
    - FirebaseAnalytics (= 6.7.2)
  - Firebase/CoreOnly (6.30.0):
    - FirebaseCore (= 6.10.0)
  - Firebase/Crashlytics (6.30.0):
    - Firebase/CoreOnly
    - FirebaseCrashlytics (~> 4.4.0)
  - FirebaseAnalytics (6.7.2):
    - FirebaseCore (~> 6.8)
    - FirebaseInstallations (~> 1.4)
    - GoogleAppMeasurement (= 6.7.2)
    - GoogleUtilities/AppDelegateSwizzler (~> 6.7)
    - GoogleUtilities/MethodSwizzler (~> 6.7)
    - GoogleUtilities/Network (~> 6.7)
    - "GoogleUtilities/NSData+zlib (~> 6.7)"
    - nanopb (~> 1.30905.0)
  - FirebaseCore (6.10.0):
    - FirebaseCoreDiagnostics (~> 1.3)
    - GoogleUtilities/Environment (~> 6.7)
    - GoogleUtilities/Logger (~> 6.7)
  - FirebaseCoreDiagnostics (1.5.0):
    - GoogleDataTransport (~> 7.0)
    - GoogleUtilities/Environment (~> 6.7)
    - GoogleUtilities/Logger (~> 6.7)
    - nanopb (~> 1.30905.0)
  - FirebaseCrashlytics (4.4.0):
    - FirebaseCore (~> 6.10)
    - FirebaseInstallations (~> 1.6)
    - GoogleDataTransport (~> 7.2)
    - nanopb (~> 1.30905.0)
    - PromisesObjC (~> 1.2)
  - FirebaseInstallations (1.7.0):
    - FirebaseCore (~> 6.10)
    - GoogleUtilities/Environment (~> 6.7)
    - GoogleUtilities/UserDefaults (~> 6.7)
    - PromisesObjC (~> 1.2)
  - Folly (2018.10.22.00):
    - boost-for-react-native
    - DoubleConversion
    - Folly/Default (= 2018.10.22.00)
    - glog
  - Folly/Default (2018.10.22.00):
    - boost-for-react-native
    - DoubleConversion
    - glog
  - glog (0.3.5)
  - Google-Maps-iOS-Utils (2.1.0):
    - Google-Maps-iOS-Utils/Clustering (= 2.1.0)
    - Google-Maps-iOS-Utils/Geometry (= 2.1.0)
    - Google-Maps-iOS-Utils/Heatmap (= 2.1.0)
    - Google-Maps-iOS-Utils/QuadTree (= 2.1.0)
    - GoogleMaps
  - Google-Maps-iOS-Utils/Clustering (2.1.0):
    - Google-Maps-iOS-Utils/QuadTree
    - GoogleMaps
  - Google-Maps-iOS-Utils/Geometry (2.1.0):
    - GoogleMaps
  - Google-Maps-iOS-Utils/Heatmap (2.1.0):
    - Google-Maps-iOS-Utils/QuadTree
    - GoogleMaps
  - Google-Maps-iOS-Utils/QuadTree (2.1.0):
    - GoogleMaps
  - GoogleAppMeasurement (6.7.2):
    - GoogleUtilities/AppDelegateSwizzler (~> 6.7)
    - GoogleUtilities/MethodSwizzler (~> 6.7)
    - GoogleUtilities/Network (~> 6.7)
    - "GoogleUtilities/NSData+zlib (~> 6.7)"
    - nanopb (~> 1.30905.0)
  - GoogleDataTransport (7.2.0):
    - nanopb (~> 1.30905.0)
  - GoogleMaps (3.2.0):
    - GoogleMaps/Maps (= 3.2.0)
  - GoogleMaps/Base (3.2.0)
  - GoogleMaps/Maps (3.2.0):
    - GoogleMaps/Base
  - GoogleUtilities/AppDelegateSwizzler (6.7.2):
    - GoogleUtilities/Environment
    - GoogleUtilities/Logger
    - GoogleUtilities/Network
  - GoogleUtilities/Environment (6.7.2):
    - PromisesObjC (~> 1.2)
  - GoogleUtilities/Logger (6.7.2):
    - GoogleUtilities/Environment
  - GoogleUtilities/MethodSwizzler (6.7.2):
    - GoogleUtilities/Logger
  - GoogleUtilities/Network (6.7.2):
    - GoogleUtilities/Logger
    - "GoogleUtilities/NSData+zlib"
    - GoogleUtilities/Reachability
  - "GoogleUtilities/NSData+zlib (6.7.2)"
  - GoogleUtilities/Reachability (6.7.2):
    - GoogleUtilities/Logger
  - GoogleUtilities/UserDefaults (6.7.2):
    - GoogleUtilities/Logger
  - KlarnaCheckoutSDK (1.6.10)
  - lottie-ios (3.1.3)
  - lottie-react-native (3.3.2):
    - lottie-ios (~> 3.1.3)
    - React
  - nanopb (1.30905.0):
    - nanopb/decode (= 1.30905.0)
    - nanopb/encode (= 1.30905.0)
  - nanopb/decode (1.30905.0)
  - nanopb/encode (1.30905.0)
  - PromisesObjC (1.2.10)
  - RCTRequired (0.61.5)
  - RCTTypeSafety (0.61.5):
    - FBLazyVector (= 0.61.5)
    - Folly (= 2018.10.22.00)
    - RCTRequired (= 0.61.5)
    - React-Core (= 0.61.5)
  - React (0.61.5):
    - React-Core (= 0.61.5)
    - React-Core/DevSupport (= 0.61.5)
    - React-Core/RCTWebSocket (= 0.61.5)
    - React-RCTActionSheet (= 0.61.5)
    - React-RCTAnimation (= 0.61.5)
    - React-RCTBlob (= 0.61.5)
    - React-RCTImage (= 0.61.5)
    - React-RCTLinking (= 0.61.5)
    - React-RCTNetwork (= 0.61.5)
    - React-RCTSettings (= 0.61.5)
    - React-RCTText (= 0.61.5)
    - React-RCTVibration (= 0.61.5)
  - React-Core (0.61.5):
    - Folly (= 2018.10.22.00)
    - glog
    - React-Core/Default (= 0.61.5)
    - React-cxxreact (= 0.61.5)
    - React-jsi (= 0.61.5)
    - React-jsiexecutor (= 0.61.5)
    - Yoga
  - React-Core/CoreModulesHeaders (0.61.5):
    - Folly (= 2018.10.22.00)
    - glog
    - React-Core/Default
    - React-cxxreact (= 0.61.5)
    - React-jsi (= 0.61.5)
    - React-jsiexecutor (= 0.61.5)
    - Yoga
  - React-Core/Default (0.61.5):
    - Folly (= 2018.10.22.00)
    - glog
    - React-cxxreact (= 0.61.5)
    - React-jsi (= 0.61.5)
    - React-jsiexecutor (= 0.61.5)
    - Yoga
  - React-Core/DevSupport (0.61.5):
    - Folly (= 2018.10.22.00)
    - glog
    - React-Core/Default (= 0.61.5)
    - React-Core/RCTWebSocket (= 0.61.5)
    - React-cxxreact (= 0.61.5)
    - React-jsi (= 0.61.5)
    - React-jsiexecutor (= 0.61.5)
    - React-jsinspector (= 0.61.5)
    - Yoga
  - React-Core/RCTActionSheetHeaders (0.61.5):
    - Folly (= 2018.10.22.00)
    - glog
    - React-Core/Default
    - React-cxxreact (= 0.61.5)
    - React-jsi (= 0.61.5)
    - React-jsiexecutor (= 0.61.5)
    - Yoga
  - React-Core/RCTAnimationHeaders (0.61.5):
    - Folly (= 2018.10.22.00)
    - glog
    - React-Core/Default
    - React-cxxreact (= 0.61.5)
    - React-jsi (= 0.61.5)
    - React-jsiexecutor (= 0.61.5)
    - Yoga
  - React-Core/RCTBlobHeaders (0.61.5):
    - Folly (= 2018.10.22.00)
    - glog
    - React-Core/Default
    - React-cxxreact (= 0.61.5)
    - React-jsi (= 0.61.5)
    - React-jsiexecutor (= 0.61.5)
    - Yoga
  - React-Core/RCTImageHeaders (0.61.5):
    - Folly (= 2018.10.22.00)
    - glog
    - React-Core/Default
    - React-cxxreact (= 0.61.5)
    - React-jsi (= 0.61.5)
    - React-jsiexecutor (= 0.61.5)
    - Yoga
  - React-Core/RCTLinkingHeaders (0.61.5):
    - Folly (= 2018.10.22.00)
    - glog
    - React-Core/Default
    - React-cxxreact (= 0.61.5)
    - React-jsi (= 0.61.5)
    - React-jsiexecutor (= 0.61.5)
    - Yoga
  - React-Core/RCTNetworkHeaders (0.61.5):
    - Folly (= 2018.10.22.00)
    - glog
    - React-Core/Default
    - React-cxxreact (= 0.61.5)
    - React-jsi (= 0.61.5)
    - React-jsiexecutor (= 0.61.5)
    - Yoga
  - React-Core/RCTPushNotificationHeaders (0.61.5):
    - Folly (= 2018.10.22.00)
    - glog
    - React-Core/Default
    - React-cxxreact (= 0.61.5)
    - React-jsi (= 0.61.5)
    - React-jsiexecutor (= 0.61.5)
    - Yoga
  - React-Core/RCTSettingsHeaders (0.61.5):
    - Folly (= 2018.10.22.00)
    - glog
    - React-Core/Default
    - React-cxxreact (= 0.61.5)
    - React-jsi (= 0.61.5)
    - React-jsiexecutor (= 0.61.5)
    - Yoga
  - React-Core/RCTTextHeaders (0.61.5):
    - Folly (= 2018.10.22.00)
    - glog
    - React-Core/Default
    - React-cxxreact (= 0.61.5)
    - React-jsi (= 0.61.5)
    - React-jsiexecutor (= 0.61.5)
    - Yoga
  - React-Core/RCTVibrationHeaders (0.61.5):
    - Folly (= 2018.10.22.00)
    - glog
    - React-Core/Default
    - React-cxxreact (= 0.61.5)
    - React-jsi (= 0.61.5)
    - React-jsiexecutor (= 0.61.5)
    - Yoga
  - React-Core/RCTWebSocket (0.61.5):
    - Folly (= 2018.10.22.00)
    - glog
    - React-Core/Default (= 0.61.5)
    - React-cxxreact (= 0.61.5)
    - React-jsi (= 0.61.5)
    - React-jsiexecutor (= 0.61.5)
    - Yoga
  - React-CoreModules (0.61.5):
    - FBReactNativeSpec (= 0.61.5)
    - Folly (= 2018.10.22.00)
    - RCTTypeSafety (= 0.61.5)
    - React-Core/CoreModulesHeaders (= 0.61.5)
    - React-RCTImage (= 0.61.5)
    - ReactCommon/turbomodule/core (= 0.61.5)
  - React-cxxreact (0.61.5):
    - boost-for-react-native (= 1.63.0)
    - DoubleConversion
    - Folly (= 2018.10.22.00)
    - glog
    - React-jsinspector (= 0.61.5)
  - React-jsi (0.61.5):
    - boost-for-react-native (= 1.63.0)
    - DoubleConversion
    - Folly (= 2018.10.22.00)
    - glog
    - React-jsi/Default (= 0.61.5)
  - React-jsi/Default (0.61.5):
    - boost-for-react-native (= 1.63.0)
    - DoubleConversion
    - Folly (= 2018.10.22.00)
    - glog
  - React-jsiexecutor (0.61.5):
    - DoubleConversion
    - Folly (= 2018.10.22.00)
    - glog
    - React-cxxreact (= 0.61.5)
    - React-jsi (= 0.61.5)
  - React-jsinspector (0.61.5)
  - react-native-geolocation (2.0.2):
    - React
  - react-native-get-random-values (1.4.0):
    - React
  - react-native-google-maps (0.26.1):
    - Google-Maps-iOS-Utils (= 2.1.0)
    - GoogleMaps (= 3.2.0)
    - React
  - react-native-image-picker (0.28.1):
    - React
  - react-native-maps (0.26.1):
    - React
  - react-native-splash-screen (3.2.0):
    - React
  - react-native-video (5.0.2):
    - React
    - react-native-video/Video (= 5.0.2)
  - react-native-video/Video (5.0.2):
    - React
  - react-native-webview (9.2.1):
    - React
  - React-RCTActionSheet (0.61.5):
    - React-Core/RCTActionSheetHeaders (= 0.61.5)
  - React-RCTAnimation (0.61.5):
    - React-Core/RCTAnimationHeaders (= 0.61.5)
  - React-RCTBlob (0.61.5):
    - React-Core/RCTBlobHeaders (= 0.61.5)
    - React-Core/RCTWebSocket (= 0.61.5)
    - React-jsi (= 0.61.5)
    - React-RCTNetwork (= 0.61.5)
  - React-RCTImage (0.61.5):
    - React-Core/RCTImageHeaders (= 0.61.5)
    - React-RCTNetwork (= 0.61.5)
  - React-RCTLinking (0.61.5):
    - React-Core/RCTLinkingHeaders (= 0.61.5)
  - React-RCTNetwork (0.61.5):
    - React-Core/RCTNetworkHeaders (= 0.61.5)
  - React-RCTPushNotification (0.61.5):
    - React-Core/RCTPushNotificationHeaders (= 0.61.5)
  - React-RCTSettings (0.61.5):
    - React-Core/RCTSettingsHeaders (= 0.61.5)
  - React-RCTText (0.61.5):
    - React-Core/RCTTextHeaders (= 0.61.5)
  - React-RCTVibration (0.61.5):
    - React-Core/RCTVibrationHeaders (= 0.61.5)
  - ReactCommon/jscallinvoker (0.61.5):
    - DoubleConversion
    - Folly (= 2018.10.22.00)
    - glog
    - React-cxxreact (= 0.61.5)
  - ReactCommon/turbomodule/core (0.61.5):
    - DoubleConversion
    - Folly (= 2018.10.22.00)
    - glog
    - React-Core (= 0.61.5)
    - React-cxxreact (= 0.61.5)
    - React-jsi (= 0.61.5)
    - ReactCommon/jscallinvoker (= 0.61.5)
  - ReactNativePermissions (1.1.1):
    - React
  - RNDateTimePicker (2.2.3):
    - React
  - RNDeviceInfo (3.1.2):
    - React
  - RNFBAnalytics (7.5.1):
    - Firebase/Analytics (~> 6.30.0)
    - React
    - RNFBApp
  - RNFBApp (8.4.0):
    - Firebase/CoreOnly (~> 6.30.0)
    - React
  - RNFBCrashlytics (8.4.1):
    - Firebase/Crashlytics (~> 6.30.0)
    - React
    - RNFBApp
  - RNGestureHandler (1.5.2):
    - React
  - RNKlarna (0.2.0):
    - KlarnaCheckoutSDK (~> 1.6)
    - React
  - RNLanguages (3.0.2):
    - React
  - RNReactNativeHapticFeedback (1.10.0):
    - React
  - RNReanimated (1.2.0):
    - React
  - Yoga (1.14.0)

DEPENDENCIES:
  - DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`)
  - FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`)
  - FBReactNativeSpec (from `../node_modules/react-native/Libraries/FBReactNativeSpec`)
  - Folly (from `../node_modules/react-native/third-party-podspecs/Folly.podspec`)
  - glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`)
  - Google-Maps-iOS-Utils
  - GoogleMaps
  - lottie-ios (from `../node_modules/lottie-ios`)
  - lottie-react-native (from `../node_modules/lottie-react-native`)
  - RCTRequired (from `../node_modules/react-native/Libraries/RCTRequired`)
  - RCTTypeSafety (from `../node_modules/react-native/Libraries/TypeSafety`)
  - React (from `../node_modules/react-native/`)
  - React-Core (from `../node_modules/react-native/`)
  - React-Core/DevSupport (from `../node_modules/react-native/`)
  - React-Core/RCTWebSocket (from `../node_modules/react-native/`)
  - React-CoreModules (from `../node_modules/react-native/React/CoreModules`)
  - React-cxxreact (from `../node_modules/react-native/ReactCommon/cxxreact`)
  - React-jsi (from `../node_modules/react-native/ReactCommon/jsi`)
  - React-jsiexecutor (from `../node_modules/react-native/ReactCommon/jsiexecutor`)
  - React-jsinspector (from `../node_modules/react-native/ReactCommon/jsinspector`)
  - "react-native-geolocation (from `../node_modules/@react-native-community/geolocation`)"
  - react-native-get-random-values (from `../node_modules/react-native-get-random-values`)
  - react-native-google-maps (from `../node_modules/react-native-maps`)
  - react-native-image-picker (from `../node_modules/react-native-image-picker`)
  - react-native-maps (from `../node_modules/react-native-maps`)
  - react-native-splash-screen (from `../node_modules/react-native-splash-screen`)
  - react-native-video (from `../node_modules/react-native-video`)
  - react-native-webview (from `../node_modules/react-native-webview`)
  - React-RCTActionSheet (from `../node_modules/react-native/Libraries/ActionSheetIOS`)
  - React-RCTAnimation (from `../node_modules/react-native/Libraries/NativeAnimation`)
  - React-RCTBlob (from `../node_modules/react-native/Libraries/Blob`)
  - React-RCTImage (from `../node_modules/react-native/Libraries/Image`)
  - React-RCTLinking (from `../node_modules/react-native/Libraries/LinkingIOS`)
  - React-RCTNetwork (from `../node_modules/react-native/Libraries/Network`)
  - React-RCTPushNotification (from `../node_modules/react-native/Libraries/PushNotificationIOS`)
  - React-RCTSettings (from `../node_modules/react-native/Libraries/Settings`)
  - React-RCTText (from `../node_modules/react-native/Libraries/Text`)
  - React-RCTVibration (from `../node_modules/react-native/Libraries/Vibration`)
  - ReactCommon/jscallinvoker (from `../node_modules/react-native/ReactCommon`)
  - ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`)
  - ReactNativePermissions (from `../node_modules/react-native-permissions`)
  - "RNDateTimePicker (from `../node_modules/@react-native-community/datetimepicker`)"
  - RNDeviceInfo (from `../node_modules/react-native-device-info`)
  - "RNFBAnalytics (from `../node_modules/@react-native-firebase/analytics`)"
  - "RNFBApp (from `../node_modules/@react-native-firebase/app`)"
  - "RNFBCrashlytics (from `../node_modules/@react-native-firebase/crashlytics`)"
  - RNGestureHandler (from `../node_modules/react-native-gesture-handler`)
  - RNKlarna (from `../node_modules/react-native-klarna`)
  - RNLanguages (from `../node_modules/react-native-languages`)
  - RNReactNativeHapticFeedback (from `../node_modules/react-native-haptic-feedback`)
  - RNReanimated (from `../node_modules/react-native-reanimated`)
  - Yoga (from `../node_modules/react-native/ReactCommon/yoga`)

SPEC REPOS:
  https://github.com/cocoapods/specs.git:
    - boost-for-react-native
    - Firebase
    - FirebaseAnalytics
    - FirebaseCore
    - FirebaseCoreDiagnostics
    - FirebaseCrashlytics
    - FirebaseInstallations
    - Google-Maps-iOS-Utils
    - GoogleAppMeasurement
    - GoogleDataTransport
    - GoogleMaps
    - GoogleUtilities
    - KlarnaCheckoutSDK
    - nanopb
    - PromisesObjC

EXTERNAL SOURCES:
  DoubleConversion:
    :podspec: "../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec"
  FBLazyVector:
    :path: "../node_modules/react-native/Libraries/FBLazyVector"
  FBReactNativeSpec:
    :path: "../node_modules/react-native/Libraries/FBReactNativeSpec"
  Folly:
    :podspec: "../node_modules/react-native/third-party-podspecs/Folly.podspec"
  glog:
    :podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec"
  lottie-ios:
    :path: "../node_modules/lottie-ios"
  lottie-react-native:
    :path: "../node_modules/lottie-react-native"
  RCTRequired:
    :path: "../node_modules/react-native/Libraries/RCTRequired"
  RCTTypeSafety:
    :path: "../node_modules/react-native/Libraries/TypeSafety"
  React:
    :path: "../node_modules/react-native/"
  React-Core:
    :path: "../node_modules/react-native/"
  React-CoreModules:
    :path: "../node_modules/react-native/React/CoreModules"
  React-cxxreact:
    :path: "../node_modules/react-native/ReactCommon/cxxreact"
  React-jsi:
    :path: "../node_modules/react-native/ReactCommon/jsi"
  React-jsiexecutor:
    :path: "../node_modules/react-native/ReactCommon/jsiexecutor"
  React-jsinspector:
    :path: "../node_modules/react-native/ReactCommon/jsinspector"
  react-native-geolocation:
    :path: "../node_modules/@react-native-community/geolocation"
  react-native-get-random-values:
    :path: "../node_modules/react-native-get-random-values"
  react-native-google-maps:
    :path: "../node_modules/react-native-maps"
  react-native-image-picker:
    :path: "../node_modules/react-native-image-picker"
  react-native-maps:
    :path: "../node_modules/react-native-maps"
  react-native-splash-screen:
    :path: "../node_modules/react-native-splash-screen"
  react-native-video:
    :path: "../node_modules/react-native-video"
  react-native-webview:
    :path: "../node_modules/react-native-webview"
  React-RCTActionSheet:
    :path: "../node_modules/react-native/Libraries/ActionSheetIOS"
  React-RCTAnimation:
    :path: "../node_modules/react-native/Libraries/NativeAnimation"
  React-RCTBlob:
    :path: "../node_modules/react-native/Libraries/Blob"
  React-RCTImage:
    :path: "../node_modules/react-native/Libraries/Image"
  React-RCTLinking:
    :path: "../node_modules/react-native/Libraries/LinkingIOS"
  React-RCTNetwork:
    :path: "../node_modules/react-native/Libraries/Network"
  React-RCTPushNotification:
    :path: "../node_modules/react-native/Libraries/PushNotificationIOS"
  React-RCTSettings:
    :path: "../node_modules/react-native/Libraries/Settings"
  React-RCTText:
    :path: "../node_modules/react-native/Libraries/Text"
  React-RCTVibration:
    :path: "../node_modules/react-native/Libraries/Vibration"
  ReactCommon:
    :path: "../node_modules/react-native/ReactCommon"
  ReactNativePermissions:
    :path: "../node_modules/react-native-permissions"
  RNDateTimePicker:
    :path: "../node_modules/@react-native-community/datetimepicker"
  RNDeviceInfo:
    :path: "../node_modules/react-native-device-info"
  RNFBAnalytics:
    :path: "../node_modules/@react-native-firebase/analytics"
  RNFBApp:
    :path: "../node_modules/@react-native-firebase/app"
  RNFBCrashlytics:
    :path: "../node_modules/@react-native-firebase/crashlytics"
  RNGestureHandler:
    :path: "../node_modules/react-native-gesture-handler"
  RNKlarna:
    :path: "../node_modules/react-native-klarna"
  RNLanguages:
    :path: "../node_modules/react-native-languages"
  RNReactNativeHapticFeedback:
    :path: "../node_modules/react-native-haptic-feedback"
  RNReanimated:
    :path: "../node_modules/react-native-reanimated"
  Yoga:
    :path: "../node_modules/react-native/ReactCommon/yoga"

SPEC CHECKSUMS:
  boost-for-react-native: 39c7adb57c4e60d6c5479dd8623128eb5b3f0f2c
  DoubleConversion: 5805e889d232975c086db112ece9ed034df7a0b2
  FBLazyVector: aaeaf388755e4f29cd74acbc9e3b8da6d807c37f
  FBReactNativeSpec: 118d0d177724c2d67f08a59136eb29ef5943ec75
  Firebase: 210f41ca352067d83b1ba4fd2e7fb49a0c017397
  FirebaseAnalytics: a299a86ef70fcc6aa011418bc65a7e101fb9636c
  FirebaseCore: 9a41e2de78fef10f63cee30ab10e2945266bc1fc
  FirebaseCoreDiagnostics: 7535fe695737f8c5b350584292a70b7f8ff0357b
  FirebaseCrashlytics: 859918905322e8816d2b5ab7fe54bf5a0c84d21c
  FirebaseInstallations: 466c7b4d1f58fe16707693091da253726a731ed2
  Folly: 30e7936e1c45c08d884aa59369ed951a8e68cf51
  glog: 1f3da668190260b06b429bb211bfbee5cd790c28
  Google-Maps-iOS-Utils: c32891ff472eaaa1fca032beedafa1a013af7875
  GoogleAppMeasurement: 3def7652b1f5b5a576178dc332e2a36a260fbef6
  GoogleDataTransport: 672fb0ce96fe7f7f31d43672fca62ad2c9c86f7b
  GoogleMaps: 5046d7edfe381c1a0b20fdaf293915a375c3122b
  GoogleUtilities: 7f2f5a07f888cdb145101d6042bc4422f57e70b3
  KlarnaCheckoutSDK: d11af86e8e6e88a2a7e2b98a8c8e9789e4d80064
  lottie-ios: 496ac5cea1bbf1a7bd1f1f472f3232eb1b8d744b
  lottie-react-native: 2a1a82bb326ae51331a5520de0cf706733c6db69
  nanopb: c43f40fadfe79e8b8db116583945847910cbabc9
  PromisesObjC: b14b1c6b68e306650688599de8a45e49fae81151
  RCTRequired: b153add4da6e7dbc44aebf93f3cf4fcae392ddf1
  RCTTypeSafety: 9aa1b91d7f9310fc6eadc3cf95126ffe818af320
  React: b6a59ef847b2b40bb6e0180a97d0ca716969ac78
  React-Core: 688b451f7d616cc1134ac95295b593d1b5158a04
  React-CoreModules: d04f8494c1a328b69ec11db9d1137d667f916dcb
  React-cxxreact: d0f7bcafa196ae410e5300736b424455e7fb7ba7
  React-jsi: cb2cd74d7ccf4cffb071a46833613edc79cdf8f7
  React-jsiexecutor: d5525f9ed5f782fdbacb64b9b01a43a9323d2386
  React-jsinspector: fa0ecc501688c3c4c34f28834a76302233e29dc0
  react-native-geolocation: c956aeb136625c23e0dce0467664af2c437888c9
  react-native-get-random-values: 2b7500cdb68066aba87cdccd97067c29e16ffe95
  react-native-google-maps: 2e2e697dab576abd5809d78cd74e775865b62bf7
  react-native-image-picker: fd93361c666f397bdf72f9c6c23f13d2685b9173
  react-native-maps: 6e499eee4eabf422ba8b6f94e993cc768bf35153
  react-native-splash-screen: 200d11d188e2e78cea3ad319964f6142b6384865
  react-native-video: d01ed7ff1e38fa7dcc6c15c94cf505e661b7bfd0
  react-native-webview: 9fb615251c147d1b94157b31fa0ea9c68b234c04
  React-RCTActionSheet: 600b4d10e3aea0913b5a92256d2719c0cdd26d76
  React-RCTAnimation: 791a87558389c80908ed06cc5dfc5e7920dfa360
  React-RCTBlob: d89293cc0236d9cb0933d85e430b0bbe81ad1d72
  React-RCTImage: 6b8e8df449eb7c814c99a92d6b52de6fe39dea4e
  React-RCTLinking: 121bb231c7503cf9094f4d8461b96a130fabf4a5
  React-RCTNetwork: fb353640aafcee84ca8b78957297bd395f065c9a
  React-RCTPushNotification: 6d0c0cd88a40465677e07a614f65ea88c1c3de24
  React-RCTSettings: 8db258ea2a5efee381fcf7a6d5044e2f8b68b640
  React-RCTText: 9ccc88273e9a3aacff5094d2175a605efa854dbe
  React-RCTVibration: a49a1f42bf8f5acf1c3e297097517c6b3af377ad
  ReactCommon: 198c7c8d3591f975e5431bec1b0b3b581aa1c5dd
  ReactNativePermissions: b64e084dff6a5cad51587d38c306f09246246384
  RNDateTimePicker: bc947b8ee2d74cf940df1915bf1dd3359f375c9f
  RNDeviceInfo: b64e3f8721d1ef47496b383685192625f77545d6
  RNFBAnalytics: 68324faecd126b94df3984efa64cfebeccb98a0b
  RNFBApp: 807094313ffdc79fc45c4cb14489c8b0ea23f935
  RNFBCrashlytics: d3e24ac0c51be237f370639f81cb9495a3d71bf9
  RNGestureHandler: 946a7691e41df61e2c4b1884deab41a4cdc3afff
  RNKlarna: ec8682593ab787b55813cea709003ae724d0ba28
  RNLanguages: 962e562af0d34ab1958d89bcfdb64fafc37c513e
  RNReactNativeHapticFeedback: 22c5ecf474428766c6b148f96f2ff6155cd7225e
  RNReanimated: 1b52415c4302f198cb581282a0166690bad62c43
  Yoga: f2a7cd4280bfe2cca5a7aed98ba0eb3d1310f18b

PODFILE CHECKSUM: 5f18013ac4eb536790e77bbb1f70cb659c3cc0fc

COCOAPODS: 1.7.3

I am doing my investigation on the actual project as it is quite tedious to set up a new one and link it to Firebase, but the code I'm using to simulate a crash is the following:

  _crash = () => {
    const { abc } = undefined;
  };

  render() {
    return (
      <View style={styles.container}>
        <TouchableOpacity
          style={{
            paddingHorizontal: 20,
            paddingVertical: 20,
            backgroundColor: 'pink',
            marginTop: 120,
          }}
          onPress={this._crash}
        >
          <Text>Crash!</Text>
        </TouchableOpacity>
      </View>
    );
  }

As you can see, it is not related to promises in any way, but obviously since it happens in a button callback, ErrorUtils are invoked, which have been re-configured by the crashlytics module to first report the crash and then handle back to the original handler. Which in turn triggers a native assertion and the app crashes as it normally would. Hence producing two entries in the Crashlytics console.

Click To See The Screenshots

Screen Shot 2020-08-27 at 18 28 00

Crash:
Screen Shot 2020-08-27 at 18 29 23

Non-fatal:
Screen Shot 2020-08-27 at 18 29 52

Thanks for the extra information! We can check into it more later but as it is over-logging (vs under-logging - a major problem!) this is not the highest priority, and I understand you have a workaround (check https://github.com/ds300/patch-package to make your local patch easy to manage, if you haven't seen it)

Side note: there are enough fiddly things with firebase - understanding them, getting them to work etc, proving problems - I have a demo script that automates throwaway construction. Might be useful to keep in your back pocket - I just have one throwaway project configured in the firebase console, and I use this script to kick out demonstrators for single features or for problems when I need it: https://github.com/mikehardy/rnfbdemo/blob/master/make-demo.sh (just hack in or out your specific modules-of-the-moment, and an App.js tweak and you have a repro for anything)

That's a great and handy script, thank you for sharing! And yeah, I was planning to use patch-package for, well, patching the package :)

Hello 馃憢, to help manage issues we automatically close stale issues.
This issue has been automatically marked as stale because it has not had activity for quite some time. Has this issue been fixed, or does it still require the community's attention?

This issue will be closed in 15 days if no further activity occurs.
Thank you for your contributions.

This issue is still valid.

I just re-read this. I'm not sure how to disentangle. The ability to log non-fatals is quite useful (I have used it to find/fix problems in my work project!) and we don't want to lose that. It requires us to log javascript issues. That the non-fatal may also result in a fatal and thus be logged twice is hard to untangle. All my non-fatals for instance did not cause app crash so I had a positive result from the feature. If you can propose a pull request that reliably logs non-fatals at javascript level and native fatals but only single logs a javascript error that then causes a crash, I'll merge it.

Hello 馃憢, to help manage issues we automatically close stale issues.
This issue has been automatically marked as stale because it has not had activity for quite some time. Has this issue been fixed, or does it still require the community's attention?

This issue will be closed in 15 days if no further activity occurs.
Thank you for your contributions.

Closing this issue after a prolonged period of inactivity. If this is still present in the latest release, please feel free to create a new issue with up-to-date information.

Was this page helpful?
0 / 5 - 0 ratings