Closed makedirectory closed 4 years ago
iOS testers may need to manually modify the project configurations here if receiving an error related to RCTLog not found:
RNFirebaseStarterTests for both debug and release should be as follows
This is fantastic, and sorely needed, thank you! I won't have time to review it for a couple days while I handle a react-native-device-info major release, but if I test it locally and it works I'll be +1 pretty easy
One question about your follow on hint that iOS testers might need to adjust things - that wasn't the case with the rn59 version, is there something inherent in rn60 that makes manual adjustment necessary? I might be missing a subtlety but I don't know why that would be needed except maybe for setting development teams...
One question about your follow on hint that iOS testers might need to adjust things - that wasn't the case with the rn59 version, is there something inherent in rn60 that makes manual adjustment necessary? I might be missing a subtlety but I don't know why that would be needed except maybe for setting development teams...
I believe this has something to do with the use of Pods for linking React dependencies. Every time I do a pod install
the config for the Test project is reset too 'None'. So that's why I've included the comment above. This may be a new issue with RN due to the switch but I'm not familiar enough to file an issue, if the consensus determines this is an issue I'm happy to do so.
A few other things to note:
(1) I could not get Android version to build without adjusting org.gradle.jvmargs within gradle.properties. I set it to 4096m but this may be able to be set lower.
(2) For Android you will need to include the Google Ads ID or the build will crash without loading the bundle. Little hard to trace this, had to use adb logcat
to view the device logs.
(3) On Android, the RNFirebase repo is no longer linked in /app/build.gradle or in the MainApplication.java but I didn't remove them, just comment out.
(4) I didn't add a react-native-config.js file to the root of the application because there is no rnpm configuration in place. If you want this added, please let me know.
(5) On iOS, I didn't remove the specific versions for the Firebase Pods but I think that can be done without any issues followed by a pod update
- happy to add this to the PR.
Apologies for making one large commit, I should have broken it down into multiple. If I can think of anything else I will be sure to leave an additional comment.
One question about your follow on hint that iOS testers might need to adjust things - that wasn't the case with the rn59 version, is there something inherent in rn60 that makes manual adjustment necessary? I might be missing a subtlety but I don't know why that would be needed except maybe for setting development teams...
I believe this has something to do with the use of Pods for linking React dependencies. Every time I do a
pod install
the config for the Test project is reset too 'None'. So that's why I've included the comment above. This may be a new issue with RN due to the switch but I'm not familiar enough to file an issue, if the consensus determines this is an issue I'm happy to do so.
Interesting - as long as it is documented very clearly in the README I don't mind
A few other things to note:
(1) I could not get Android version to build without adjusting org.gradle.jvmargs within gradle.properties. I set it to 4096m but this may be able to be set lower.
I commented on that I think 768 is alright
(2) For Android you will need to include the Google Ads ID or the build will crash without loading the bundle. Little hard to trace this, had to use
adb logcat
to view the device logs.
If you look at https://github.com/mikehardy/rnfbdemo/blob/master/make-demo.sh I just put the official sample admob ids in there and it works great. That one is a snag that catches people out, yes. Even harder to figure out on iOS where logging is harder to obtain
(3) On Android, the RNFirebase repo is no longer linked in /app/build.gradle or in the MainApplication.java but I didn't remove them, just comment out.
I'd just remove them, them but you still have to have it in settings.gradle so you can pull in the objects in MainApplication for the modules, plus to implement messaging or whatever
(4) I didn't add a react-native-config.js file to the root of the application because there is no rnpm configuration in place. If you want this added, please let me know.
Nah - I think that's just for overrides? I don't have one, personally - it's not needed for any of the modules I use at this point, including react-native-firebase
(5) On iOS, I didn't remove the specific versions for the Firebase Pods but I think that can be done without any issues followed by a
pod update
- happy to add this to the PR.
I think having specific versions is still useful but I'd make them all current as I commented
Apologies for making one large commit, I should have broken it down into multiple. If I can think of anything else I will be sure to leave an additional comment.
I'm not bothered :-), just really happy you took the time to do it, rn59->rn60 isn't the funnest conversion but people really use this starter heavily
I updated the readme.md file to reference the comment above regarding the test configuration for anybody that has issues. It does reset the configuration every single time a pod install
is performed.
Only use the react-native-config.js file to add custom fonts, nothing else at this point and it's not needed for this project.
Do you think it would make sense to add the sample config for the firebase-ads package?
IE: add
<meta-data android:name="com.google.android.gms.ads.APPLICATION_ID" android:value="ca-app-pub-3940256099942544~3347511713"/>
to the AndroidManifest.xml file...
Also worth noting that I added in a Run Script to the iOS build to start metro builder, will make a comment in the code for reference.
Do you think it would make sense to add the sample config for the firebase-ads package? IE: add
<meta-data android:name="com.google.android.gms.ads.APPLICATION_ID" android:value="ca-app-pub-3940256099942544~3347511713"/>
to the AndroidManifest.xml file...
Definitely - and in the Info.plist too - the goal of the starter is you follow a couple easy steps and the thing runs. A crash followed by doc-hunting will mean issues open in the repo - no fun. If you count on ad revenue, you'll figure it out soon enough to put in your ID
Do you think it would make sense to add the sample config for the firebase-ads package? IE: add
<meta-data android:name="com.google.android.gms.ads.APPLICATION_ID" android:value="ca-app-pub-3940256099942544~3347511713"/>
to the AndroidManifest.xml file...Definitely - and in the Info.plist too - the goal of the starter is you follow a couple easy steps and the thing runs. A crash followed by doc-hunting will mean issues open in the repo - no fun. If you count on ad revenue, you'll figure it out soon enough to put in your ID
Added in https://github.com/invertase/react-native-firebase-starter/pull/135/commits/a836c29a40dc92c3823a07b7ce2af608f7cf592e and updated the readme
I love this - @Salakar + @Ehesp I am human and miss things, but I've scanned this well and @makedirectory has done what I think is some great work here. I'd merge it pending a second set of eyeballs
I'll wait for review on this for another day or so but I'll merge otherwise, as @danielfein was just tripped up by this today and I'd like to get it merged so the android/androidx transition and the link-vs-auto-link and pods transtions aren't propagated to any more people. I wouldn't wish that on anyone
np of course @Salakar I know you were traveling. I'll merge this then and we'll see how it goes
Happy to leave comments if necessary on what was changed/updated