Skip to content

Conversation

@Salakar
Copy link
Contributor

@Salakar Salakar commented Mar 7, 2019

[crashlytics]

Blog post announcement: [Firebase Crashlytics for React Native]

[The full changelog can be viewed here]

Fixes: #1643, #1848, #1964, #1920, #1884, #1783, #1966, #1940, #1447

Features/Bugs Todo:

  • Capture JS Exceptions with stack traces automatically
  • Capture Unhandled Promise Rejections with stack traces automatically
  • [Android] .crash() not captured in debug due to RN RedBox; see #1921
  • Support advanced user identifier features
  • [Android] Enable Crashlyics NDK reporting by default (gist)
  • Support toggling native crash logging off/on (e.g. disable in DEV)
  • Support toggling JS crash logging off/on (e.g. disable in DEV)

Migration to v6 Todo:

  • JS
  • iOS
  • Android
  • Tests (>=95%)
  • 100% Firebase API cover
  • Flow Types
  • TS Types
  • Update Readme

Other Todo (non-crashlytics specific):

As v6 is still very much WIP; some internals don't exist yet that are required by Crashlytics; these have been implemented as part of this PR. Also fixed some minor internals/tests issues that have been flagged during work on Crashlytics.

  • [ios] Static framework support for all modules
  • [ios] Implement CocoaPods Firebase RN modules auto-loader script
  • Implement firebase.json config loader; Android & iOS
  • [tests] Fix false positive tests that catch errors (tests did not check that errors actually threw)
  • [android] Cleanup manifest permissions for all modules
  • [android] Implement Content provider base class
  • [android] Investigate/fix issue where setDataCollectionDefaultEnabled is false by default in Firebase - it disables Crashlytics reporting

Additionally supports all Crashlytics features from corymsmith/react-native-fabric#214 and more - if anyone wants to migrate.

@Salakar Salakar added the plugin: crashlytics Firebase Crashlytics label Mar 7, 2019
@Salakar Salakar self-assigned this Mar 7, 2019
@Salakar Salakar added this to the v6.0.0 milestone Mar 7, 2019
@Salakar Salakar added the v6 label Mar 7, 2019
@invertase invertase deleted a comment from codecov bot Mar 13, 2019
@codecov
Copy link

codecov bot commented Mar 13, 2019

Codecov Report

Merging #1958 into master will increase coverage by 0.05%.
The diff coverage is 97.3%.

@@            Coverage Diff             @@
##           master    #1958      +/-   ##
==========================================
+ Coverage   99.63%   99.67%   +0.05%     
==========================================
  Files          19       19              
  Lines         267      300      +33     
==========================================
+ Hits          266      299      +33     
  Misses          1        1

@stevenjohn
Copy link

Do we have an ETA for this merge please? We cant implement FB until this is fixed. Thanks :)

@stevenjohn what Firebase services do you intend to use? This change is only going to be compatible with v6 - only a few Firebase services are complete and production ready on v6.

Crashlytics - thats the main reason...

@Salakar
Copy link
Contributor Author

Salakar commented Apr 10, 2019

@stevenjohn this should help you get started with this: [Firebase Crashlytics for React Native]

@mikehardy
Copy link
Collaborator

@Salakar - I am really excited about the javascript level crash reporting (stacks, unhandled promise rejections) but I am using unmigrated 5.x modules. Just looking for a yes or no here but the tracking issue for 6.x #2025 says "if all the Firebase services that you use are already listed there then you are good to migrate to the v6.0.0" - now if I was hard-headed, would there be any possible way to use some 5.x and some 6.x packages as an unholy mix? I'm guessing the answer is a simple clear "no" but wanted to make sure.

@Salakar
Copy link
Contributor Author

Salakar commented Apr 10, 2019

@mikehardy to be honest; I've not tried mixing them but I can only imagine there would be some native SDK version conflicts, though maybe not with the latest v5.3.0 release as they are both on the same versions now I believe.

I'd say if you want to try then go for it; don't let me hold you back 😅 that comment is purely there so that we don't get swamped with issues saying it doesn't work with both etc. If you do try please let me know your findings (on this issue) and I can update the changelog to reflect.

@mikehardy
Copy link
Collaborator

I can only imagine there would be some native SDK version conflicts, though maybe not with the latest v5.3.0 release

This was the thing that made me think "maaaybe" - I think every part of everything is up to current now... if I try it I'll publish results. Thanks!

@sampsonjoliver
Copy link

@mikehardy I'm interested in results if you have any! I might try this as well

@mikehardy
Copy link
Collaborator

I haven't tried it yet and I must be honest my project's roadmap is so deep right now I doubt I'll get to it before v6 is out for all the modules I use unless this somehow becomes a diagnostic road block for us on crashes more than the testing time, but I'll certainly report back if I try.

@Salakar Salakar deleted the @salakar/v6/crashlytics branch May 3, 2019 11:55
7patricia pushed a commit to uphold-forks/react-native-firebase that referenced this pull request Nov 29, 2019
…rtase#1958)

[crashlytics]

Fixes: invertase#1643, invertase#1848, invertase#1964, invertase#1920, invertase#1884, invertase#1783, invertase#1966, invertase#1940, invertase#1447

Features/Bugs Todo:

  Capture JS Exceptions with stack traces automatically
  Capture Unhandled Promise Rejections with stack traces automatically
  [Android] .crash() not captured in debug due to RN RedBox; see invertase#1921
  Support advanced user identifier features
  [Android] Enable Crashlyics NDK reporting by default (gist)
  Support toggling native crash logging off/on (e.g. disable in DEV)
  Support toggling JS crash logging off/on (e.g. disable in DEV)

  [ios] Static framework support for all modules
  [ios] Implement CocoaPods Firebase RN modules auto-loader script
  Implement firebase.json config loader; Android & iOS
  [tests] Fix false positive tests that catch errors (tests did not check that errors actually threw)
  [android] Cleanup manifest permissions for all modules
  [android] Implement Content provider base class
  [android] Investigate/fix issue where setDataCollectionDefaultEnabled is false by default in Firebase - it disables Crashlytics reporting
@afkcodes
Copy link

afkcodes commented Jan 4, 2020

[Android] .crash() not captured in debug due to RN RedBox; see #1921
is this issue has been fixed i'm unable to get any stack traces JS or Native fro debug mode idk why ? i have followed the docs correctly it reports in production mode btw.
@Salakar and hats-off for such a wonderful module.

@fjmorant
Copy link

I haven't tried it yet and I must be honest my project's roadmap is so deep right now I doubt I'll get to it before v6 is out for all the modules I use unless this somehow becomes a diagnostic road block for us on crashes more than the testing time, but I'll certainly report back if I try.

@mikehardy Any result??

@mikehardy
Copy link
Collaborator

@fjmorant I haven't tried personally after going deeper into v5 (actually doing some releases) and doing a v6 demo. They are not going to work together

@fjmorant
Copy link

@fjmorant I haven't tried personally after going deeper into v5 (actually doing some releases) and doing a v6 demo. They are not going to work together

Thx , that’s what I thought

andersondanilo pushed a commit to vixtech/react-native-firebase that referenced this pull request Nov 9, 2020
…rtase#1958)

[crashlytics]

Fixes: invertase#1643, invertase#1848, invertase#1964, invertase#1920, invertase#1884, invertase#1783, invertase#1966, invertase#1940, invertase#1447

Features/Bugs Todo:

  Capture JS Exceptions with stack traces automatically
  Capture Unhandled Promise Rejections with stack traces automatically
  [Android] .crash() not captured in debug due to RN RedBox; see invertase#1921
  Support advanced user identifier features
  [Android] Enable Crashlyics NDK reporting by default (gist)
  Support toggling native crash logging off/on (e.g. disable in DEV)
  Support toggling JS crash logging off/on (e.g. disable in DEV)

  [ios] Static framework support for all modules
  [ios] Implement CocoaPods Firebase RN modules auto-loader script
  Implement firebase.json config loader; Android & iOS
  [tests] Fix false positive tests that catch errors (tests did not check that errors actually threw)
  [android] Cleanup manifest permissions for all modules
  [android] Implement Content provider base class
  [android] Investigate/fix issue where setDataCollectionDefaultEnabled is false by default in Firebase - it disables Crashlytics reporting
androidIsForVivek pushed a commit to androidIsForVivek/react-native-firebase that referenced this pull request Aug 9, 2021
…rtase#1958)

[crashlytics]

Fixes: invertase#1643, invertase#1848, invertase#1964, invertase#1920, invertase#1884, invertase#1783, invertase#1966, invertase#1940, invertase#1447

Features/Bugs Todo:

  Capture JS Exceptions with stack traces automatically
  Capture Unhandled Promise Rejections with stack traces automatically
  [Android] .crash() not captured in debug due to RN RedBox; see invertase#1921
  Support advanced user identifier features
  [Android] Enable Crashlyics NDK reporting by default (gist)
  Support toggling native crash logging off/on (e.g. disable in DEV)
  Support toggling JS crash logging off/on (e.g. disable in DEV)

  [ios] Static framework support for all modules
  [ios] Implement CocoaPods Firebase RN modules auto-loader script
  Implement firebase.json config loader; Android & iOS
  [tests] Fix false positive tests that catch errors (tests did not check that errors actually threw)
  [android] Cleanup manifest permissions for all modules
  [android] Implement Content provider base class
  [android] Investigate/fix issue where setDataCollectionDefaultEnabled is false by default in Firebase - it disables Crashlytics reporting
androidIsForVivek pushed a commit to androidIsForVivek/react-native-firebase that referenced this pull request Sep 15, 2021
…rtase#1958)

[crashlytics]

Fixes: invertase#1643, invertase#1848, invertase#1964, invertase#1920, invertase#1884, invertase#1783, invertase#1966, invertase#1940, invertase#1447

Features/Bugs Todo:

  Capture JS Exceptions with stack traces automatically
  Capture Unhandled Promise Rejections with stack traces automatically
  [Android] .crash() not captured in debug due to RN RedBox; see invertase#1921
  Support advanced user identifier features
  [Android] Enable Crashlyics NDK reporting by default (gist)
  Support toggling native crash logging off/on (e.g. disable in DEV)
  Support toggling JS crash logging off/on (e.g. disable in DEV)

  [ios] Static framework support for all modules
  [ios] Implement CocoaPods Firebase RN modules auto-loader script
  Implement firebase.json config loader; Android & iOS
  [tests] Fix false positive tests that catch errors (tests did not check that errors actually threw)
  [android] Cleanup manifest permissions for all modules
  [android] Implement Content provider base class
  [android] Investigate/fix issue where setDataCollectionDefaultEnabled is false by default in Firebase - it disables Crashlytics reporting
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

plugin: crashlytics Firebase Crashlytics

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants