Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Why do we use fabric for crashlytics? #3510

Closed
Acetyld opened this issue Apr 22, 2020 · 27 comments
Closed

Why do we use fabric for crashlytics? #3510

Acetyld opened this issue Apr 22, 2020 · 27 comments
Labels
plugin: crashlytics Firebase Crashlytics

Comments

@Acetyld
Copy link

Acetyld commented Apr 22, 2020

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

@Ehesp
Copy link
Member

Ehesp commented Apr 22, 2020

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

@Acetyld
Copy link
Author

Acetyld commented Apr 22, 2020

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

@mikehardy
Copy link
Collaborator

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

@embpdaniel
Copy link
Contributor

@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?

@mikehardy
Copy link
Collaborator

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

@r0b0t3d
Copy link
Contributor

r0b0t3d commented Apr 29, 2020

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

@deecewan
Copy link

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

@mikehardy
Copy link
Collaborator

mikehardy commented May 12, 2020

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

@deecewan
Copy link

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.

@mikehardy
Copy link
Collaborator

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!

@Salakar
Copy link
Member

Salakar commented May 12, 2020

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

@stale
Copy link

stale bot commented Jun 9, 2020

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.

@stale stale bot added the Type: Stale Issue has become stale - automatically added by Stale bot label Jun 9, 2020
@awinograd
Copy link

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.

@stale stale bot removed the Type: Stale Issue has become stale - automatically added by Stale bot label Jun 10, 2020
@andersonaddo
Copy link
Contributor

For anyone who stumbles upon this:
RNFB v8 now uses Firebase Crashlytics. (#3580)
source

@mars-lan
Copy link
Contributor

mars-lan commented Jul 7, 2020

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.

@Salakar
Copy link
Member

Salakar commented Jul 7, 2020

@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
Copy link
Contributor

mars-lan commented Jul 7, 2020

@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 :)

@mikehardy
Copy link
Collaborator

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

@mars-lan
Copy link
Contributor

mars-lan commented Jul 7, 2020

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

@trglairnarra
Copy link

trglairnarra commented Jul 10, 2020

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

@mikehardy
Copy link
Collaborator

@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

@davezrh
Copy link

davezrh commented Oct 5, 2020

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?

@mars-lan
Copy link
Contributor

@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.

@lisichka999
Copy link

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

@mikehardy
Copy link
Collaborator

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

@lisichka999
Copy link

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

@mikehardy
Copy link
Collaborator

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

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

No branches or pull requests