React-native-firebase: Why do we use fabric for crashlytics?

Created on 22 Apr 2020  路  27Comments  路  Source: invertase/react-native-firebase

Hello!

As the title states: "Why do we use fabric for crashlytics?" and not the new crashlytics library https://firebase.google.com/docs/crashlytics/get-started-new-sdk?platform=android

Crashlytics Question

Most helpful comment

FYI I just received the following email from Firebase. Excited for the linked PR to ship so I can start the migration process. Just leaving this here so other people who just got the email have an easier time finding info that the upgrade is a WIP.

image


For github searchers....

We are writing to let you know that the Fabric Crashlytics SDK is now deprecated and will continue reporting your app's crashes until November 15, 2020. After this date, the Fabric Crashlytics SDK and beta versions of the Firebase Crashlytics SDK will stop sending crash reports for your app.

All 27 comments

We haven't got around to updating the library yet to remove fabric.

So fabric is not needed? Or is the documentation wrong, or havent you implemented the firebase way yet?

Fabric is needed
The Firebase Crashlytics is still in beta.

I think the upstream Google Firebase SDK team is doing a poor job messaging this thing really.

They have put out that Fabric is out of support very shortly and you should migrate. But it is unclear to what so people are naturally very concerned, but they are all asking why we haven't migrated to a beta library. Isn't that odd?

If I understand correctly there are three crashlytics:

1) Fabric Fabric Crashlytics - from before Firebase/Google bought them. This is going away. You need to migrate
2) Firebase Fabric Crashlytics - this is the current stable thing. It's what react-native-firebase uses. I can't see how this would be going away yet since the future option is still beta?
3) Firebase Crashlytics - this is in beta. It's the future but the future isn't here yet (or it wouldn't be beta?). I understand google pushes beta stuff out widely frequently but to actually discontinue option 1 before option 3 is out of beta seems bizarre.

So I think everyone is fine for now, with option 2, and it's what react-native-firebase uses for now.

Anyone have info to the contrary? I would love to hear it

@mikehardy Is there a diff between the Fabric service vs the Fabric SDK? My understanding is that option 2 you mentioned, uses the Fabric SDK but doesn't have to be linked with the Fabric service which is deprecated. It could be, but it's optional. Is this correct?

That's my understanding - that using Fabric SDK but with Firebase back-end, and why I'm okay with react-native-firebase using the Fabric SDK vs converting to a beta (in form of option 3 above) SDK, and why I think Firebase has some poor messaging here. This shouldn't be a question, we should all understand this clearly from their docs. Instead we have lots of worried devs thinking they're deprecated and have some action to take, when they're (I think) safely using Option 2

Just got an email from Fabric. As @mikehardy mention above, if you are using Fabric Fabric Crashlytics(1), you need to migrate your project to Firebase Fabric Crashlytics (2)

image

Update here:

The top of this page now has:

Note: The legacy Fabric SDK is now deprecated. If your app is using the Fabric SDK, read the Upgrade guide to install the official Firebase Crashlytics SDK.

The upgrade guide now mentions to remove the Fabric and Crashlytics pods, and replace with Firebase/Crashlytics. I _think_ that means that it is out of beta 馃し

But also. It was last updated on 2020-05-07 (6 days ago) so I'm not sure it's super critical

Yep - it left beta on April 21 https://firebase.google.com/support/release-notes/ios#version_6230_-_april_21_2020 (April 23 for Android https://firebase.google.com/support/release-notes/android#crashlytics_v17-0-0)

And there's a PR to port to it #3580 which I think looks pretty good and is just waiting review from one of @Salakar or @Ehesp ?

I actually think it is super critical but I use an "urgent / not urgent" axis and a "important / not important" axis to make sure the "important but not urgent" stuff doesn't get lost. This is in that quadrant - if we don't address it, we'll all be sad when it is urgent and important and not done yet :-), so I I'm hoping it gets nailed while still not urgent - I think it will

yup - just found the PR and had a look through. was about to tackle it myself, but (luckily) decided to check if someone else had started first.

I guess when I said "not super critical" i was talking on the "urgent/not urgent" axis.

Thanks for reviewing it - I saw your comment over there, looked spot on. Shouldn't be long now before that's shaped up and merged either way. Cheers!

Commented on the PR with more info / blockers, but I'm hoping to pickup fully on Friday.

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.

FYI I just received the following email from Firebase. Excited for the linked PR to ship so I can start the migration process. Just leaving this here so other people who just got the email have an easier time finding info that the upgrade is a WIP.

image


For github searchers....

We are writing to let you know that the Fabric Crashlytics SDK is now deprecated and will continue reporting your app's crashes until November 15, 2020. After this date, the Fabric Crashlytics SDK and beta versions of the Firebase Crashlytics SDK will stop sending crash reports for your app.

For anyone who stumbles upon this:
RNFB v8 now uses Firebase Crashlytics. (https://github.com/invertase/react-native-firebase/pull/3580)
source

For those who are still stuck on v5 because they can't migrate their notification code to notifee or other libs, the good news is that you should be able to get @react-native-firebase/crashlytics to coexist with react-native-firebase v5 peacefully. The TL;DR; is

  1. Add modules
yarn add @react-native-firebase/app
yarn add @react-native-firebase/crashlytics
  1. Clean up your Pod file & gradle build scripts using https://firebase.google.com/docs/crashlytics/upgrade-sdk
  2. Update JS code using https://rnfirebase.io/migrating-to-v6#crashlytics

This works because there's no class name conflicts between v5 & v6+ on the native side for this particular package. I was also able to get analytics & storage packages to work using the same trick.

@mars-lan out of interest whats holding you back from using notifee, is it the cost or is it the process of upgrading?

@mars-lan out of interest whats holding you back from using notifee, is it the cost or is it the process of upgrading?

Actually already bought a license for it. Still waiting for time-based trigger support to be added :)

This may be an idea that goes nowhere, but you might be able to use https://github.com/transistorsoft/react-native-background-fetch as an alarm manager, set to trigger your notification - it seems like an oblique / not-great fit but still might work https://github.com/transistorsoft/react-native-background-fetch#param-integer-delay-milliseconds

This may be an idea that goes nowhere, but you might be able to use https://github.com/transistorsoft/react-native-background-fetch as an alarm manager, set to trigger your notification - it seems like an oblique / not-great fit but still might work https://github.com/transistorsoft/react-native-background-fetch#param-integer-delay-milliseconds

That's definitely an interesting idea but would rather wait for @Salakar & co to come up with the proper implementation in notifee. After all that's why I paid for the license in the first place :P

Hi guys, thanks for the free use and great work. Just wondering if v8 is already available and on how to migrate to v8 from v6.
Or also wondering if to just update the version on package.json and then apply the guide which firebase provided?..
Thanks

@trglairnarra you will need to be quite a bit more resourceful than that :-), version information and release notes are available on main docs site rnfirebase.io which is also linked from readme

For those who are still stuck on v5 because they can't migrate their notification code to notifee or other libs, the good news is that you should be able to get @react-native-firebase/crashlytics to coexist with react-native-firebase v5 peacefully. The TL;DR; is

  1. Add modules
yarn add @react-native-firebase/app
yarn add @react-native-firebase/crashlytics
  1. Clean up your Pod file & gradle build scripts using https://firebase.google.com/docs/crashlytics/upgrade-sdk
  2. Update JS code using https://rnfirebase.io/migrating-to-v6#crashlytics

This works because there's no class name conflicts between v5 & v6+ on the native side for this particular package. I was also able to get analytics & storage packages to work using the same trick.

I tried to upgrade Crashlytics to v6 while leaving v5 for the other packages. The Podfile included the following entries:

# Required by RNFirebase
  pod 'Firebase/Core', '~> 6.13.0'
  pod 'Firebase/Messaging', '~> 6.13.0'
  pod 'Firebase/RemoteConfig', '~> 6.13.0'
  pod 'Firebase/DynamicLinks', '~> 6.13.0'
  pod 'Firebase/Performance', '~> 6.13.0'
  pod 'Firebase/Auth', '~> 6.13.0'

Adding pod 'Firebase/Crashlytics' or pod 'Firebase/Crashlytics', '~> 6.30.0' to the Podfile didn't work:
`` [!] CocoaPods could not find compatible versions for pod "Firebase/CoreOnly": In Podfile: RNFBApp (from../node_modules/@react-native-firebase/app`) was resolved to 8.4.5, which depends on
Firebase/CoreOnly (~> 6.30.0)
````

Do you have more details on how you managed to make it work?

@davezrh sorry but I've long moved on to notifee since making that comment so my memory is a bit fuzzy at this point. Also note that this was prior to the fabric to firebase/crashlytics migration so not sure if that changed anything.

Hi @mikehardy , from what version Fabric is inside crashlytics, I use 7, should I upgrade to 8?
Thanks

It's noted in the changelog on the releases. But use current stable, most recent

@mikehardy , Thanks, I think this is a problem, when can I see the change log?

Rnfirebase.io releases
Its not a problem
Ported for months now

Was this page helpful?
0 / 5 - 0 ratings

Related issues

OleksandrKucherenko picture OleksandrKucherenko  路  46Comments

abdullahizzuddiin picture abdullahizzuddiin  路  80Comments

jagwingchoy picture jagwingchoy  路  61Comments

rewieer picture rewieer  路  51Comments

umang-simform picture umang-simform  路  77Comments