diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md index d4d824c0..798e9a31 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE.md @@ -14,27 +14,31 @@ The issue list of this repo is exclusively for bug reports. - - ### Environment -1. Application Target Platform: + +1. Application Target Platform: -2. Development Operating System: + +2. Development Operating System: -3. Build Tools: + +3. Build Tools: -4. React Native version: + +4. React Native version: -5. RNFirebase Version: + +5. RNFirebase Version: -6. Firebase Module: + +6. Firebase Module: diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 295cfb85..79b02ec8 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -4,16 +4,17 @@ First, thank you for considering contributing to react-native-firebase! It's people like you that make the open source community such a great community! 😊 -We welcome any type of contribution, not only code. You can help with -- **QA**: file bug reports, the more details you can give the better (e.g. screenshots with the console open) -- **Marketing**: writing blog posts, howto's, printing stickers, ... -- **Community**: presenting the project at meetups, organizing a dedicated meetup for the local community, ... -- **Code**: take a look at the [open issues](issues). Even if you can't write code, commenting on them, showing that you care about a given issue matters. It helps us triage them. -- **Money**: we welcome financial contributions in full transparency on our [open collective](https://opencollective.com/react-native-firebase). +We welcome any type of contribution, not only code. You can help with + +* **QA**: file bug reports, the more details you can give the better (e.g. screenshots with the console open) +* **Marketing**: writing blog posts, howto's, printing stickers, ... +* **Community**: presenting the project at meetups, organizing a dedicated meetup for the local community, ... +* **Code**: take a look at the [open issues](issues). Even if you can't write code, commenting on them, showing that you care about a given issue matters. It helps us triage them. +* **Money**: we welcome financial contributions in full transparency on our [open collective](https://opencollective.com/react-native-firebase). ## Your First Contribution -Working on your first Pull Request? You can learn how from this *free* series, [How to Contribute to an Open Source Project on GitHub](https://egghead.io/series/how-to-contribute-to-an-open-source-project-on-github). +Working on your first Pull Request? You can learn how from this _free_ series, [How to Contribute to an Open Source Project on GitHub](https://egghead.io/series/how-to-contribute-to-an-open-source-project-on-github). ## Submitting code @@ -41,14 +42,12 @@ You can also reach us at oss@invertase.io Thank you to all the people who have already contributed to react-native-firebase! - ### Backers Thank you to all our backers! [[Become a backer](https://opencollective.com/react-native-firebase#backer)] - ### Sponsors Thank you to all our sponsors! (please ask your company to also support this open source project by [becoming a sponsor](https://opencollective.com/react-native-firebase#sponsor)) diff --git a/README.md b/README.md index c96fe625..4c9ad359 100644 --- a/README.md +++ b/README.md @@ -30,43 +30,44 @@ All in all, RNFirebase provides much faster performance (~2x) over the web SDK a --- ## Supported Firebase Features -> The Web SDK column indicates what modules/functionality from the Web SDK are usable within React Native. +> The Web SDK column indicates what modules/functionality from the Web SDK are usable within React Native. > '**?**' indicates partial support -| Firebase Features | v1.x.x | v2.x.x | v3.x.x | v3.1.x | v3.2.x | Web SDK | -| ---------------------- | :---: | :---: | :---: | :---: | :---: | :---: | -| **AdMob** | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ | -| **Analytics**             | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | -| **App Indexing**           | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | -| **Authentication** | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| _-- Phone Auth_ | ❌ | ❌ | ✅ | ✅ | ✅ | ❌ | -| **Core** | ❌ |**?**| ✅ | ✅ | ✅ | ✅ | -| _-- Multiple Apps_ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | -| **Cloud Firestore** | ❌ | ❌ | ✅ | ✅ | ✅ |**?**| -| **Cloud Messaging (FCM)** | ✅ | ✅ | ✅ | ✅ | ✅ |**?**| -| **Crashlytics**           | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | -| **Crash Reporting** | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | -| **Dynamic Links** | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ | -| **Invites** | ❌ | ❌ | ❌ |**?**|**?**| ❌ | -| **Performance Monitoring** | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | -| **Realtime Database** | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| _-- Offline Persistence_ | ✅ | ✅ | ✅ | ✅ | ✅ |**?**| -| _-- Transactions_ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| **Remote Config** | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | -| **Storage** | ✅ | ✅ | ✅ | ✅ | ✅ |**?**| +| Firebase Features | v1.x.x | v2.x.x | v3.x.x | v3.1.x | v3.2.x | Web SDK | +| -------------------------- | :----: | :----: | :----: | :----: | :----: | :-----: | +| **AdMob** | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ | +| **Analytics**             | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| **App Indexing**           | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | +| **Authentication** | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| _-- Phone Auth_ | ❌ | ❌ | ✅ | ✅ | ✅ | ❌ | +| **Core** | ❌ | **?** | ✅ | ✅ | ✅ | ✅ | +| _-- Multiple Apps_ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | +| **Cloud Firestore** | ❌ | ❌ | ✅ | ✅ | ✅ | **?** | +| **Cloud Messaging (FCM)** | ✅ | ✅ | ✅ | ✅ | ✅ | **?** | +| **Crashlytics**           | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | +| **Crash Reporting** | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| **Dynamic Links** | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ | +| **Invites** | ❌ | ❌ | ❌ | **?** | **?** | ❌ | +| **Performance Monitoring** | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| **Realtime Database** | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| _-- Offline Persistence_ | ✅ | ✅ | ✅ | ✅ | ✅ | **?** | +| _-- Transactions_ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| **Remote Config** | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | +| **Storage** | ✅ | ✅ | ✅ | ✅ | ✅ | **?** | --- + ### Supported versions - React Native / Firebase > The table below shows the supported versions of React Native and the Firebase SDKs for different versions of `react-native-firebase` -| | 1.X.X | 2.0.X | 2.1.X / 2.2.X | 3.0.X | 3.1.X | 3.2.X | -|------------------------|-------------|-------------|-----------------|----------|-------------|----------| -| React Native | 0.36 - 0.39 | 0.40 - 0.46 | 0.47 + | 0.48 + | 0.48 - 0.49 | 0.50 + | -| Firebase Android SDK | 10.2.0 + | 11.0.0 + | 11.0.0 + | 11.4.2 + | 11.6.0 + | 11.6.2 + | -| Firebase iOS SDK | 3.15.0 + | 4.0.0 + | 4.0.0 + | 4.3.0 + | 4.5.0 + | 4.7.0 + | +| | 1.X.X | 2.0.X | 2.1.X / 2.2.X | 3.0.X | 3.1.X | 3.2.X | +| -------------------- | ----------- | ----------- | ------------- | -------- | ----------- | -------- | +| React Native | 0.36 - 0.39 | 0.40 - 0.46 | 0.47 + | 0.48 + | 0.48 - 0.49 | 0.50 + | +| Firebase Android SDK | 10.2.0 + | 11.0.0 + | 11.0.0 + | 11.4.2 + | 11.6.0 + | 11.6.2 + | +| Firebase iOS SDK | 3.15.0 + | 4.0.0 + | 4.0.0 + | 4.3.0 + | 4.5.0 + | 4.7.0 + | --- @@ -96,7 +97,7 @@ Detailed changes for each release are documented in the [releases notes](https:/ RNFirebase is an Apache-2.0 licensed open source project. It's an independent project with its ongoing development made possible entirely thanks to the support by these awesome [sponsors](#sponsors) and [backers](#backers). If you'd like to join them, please consider: -- [Become a backer or sponsor on Open Collective](https://opencollective.com/react-native-firebase). +* [Become a backer or sponsor on Open Collective](https://opencollective.com/react-native-firebase). ### Sponsors @@ -131,4 +132,4 @@ Thank you to all the people who have already contributed to RNFirebase! ## License -- See [LICENSE](/LICENSE) +* See [LICENSE](/LICENSE) diff --git a/jsconfig.json b/jsconfig.json index c98b6e08..c11a3996 100644 --- a/jsconfig.json +++ b/jsconfig.json @@ -1,9 +1,7 @@ { - "compilerOptions": { - "allowJs": true, - "allowSyntheticDefaultImports": true - }, - "exclude": [ - "node_modules" - ] -} \ No newline at end of file + "compilerOptions": { + "allowJs": true, + "allowSyntheticDefaultImports": true + }, + "exclude": ["node_modules"] +} diff --git a/package.json b/package.json index fd9b7925..84184cb9 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,8 @@ "build-lib": "BABEL_ENV=publish babel lib -d dist --ignore __tests__ --copy-files", "clean": "rimraf dist/", "flow": "flow", - "format": "npm run lint -- --fix", + "format:assets": "prettier --ignore-path .gitignore --write \"**/*.{json,md}\"", + "format": "npm run format:assets && npm run lint -- --fix", "lint": "eslint ./lib ./tests/src ./tests/lib", "precommit": "lint-staged", "prepublish": "npm run clean && npm run build", @@ -31,45 +32,10 @@ "jest": { "preset": "jest-react-native", "setupFiles": [], - "unmockedModulePathPatterns": [ - "./node_modules/react", - "./node_modules/react-native", - "./node_modules/react-native-mock", - "./node_modules/react-addons-test-utils" - ] + "unmockedModulePathPatterns": ["./node_modules/react", "./node_modules/react-native", "./node_modules/react-native-mock", "./node_modules/react-addons-test-utils"] }, "license": "APACHE-2.0", - "keywords": [ - "react", - "admob", - "auth", - "config", - "digits", - "phone-auth", - "sms", - "firestore", - "cloud-firestore", - "datastore", - "remote-config", - "transactions", - "react-native", - "react-native-firebase", - "firebase", - "fcm", - "apn", - "gcm", - "analytics", - "messaging", - "database", - "android", - "ios", - "crash", - "firestack", - "performance", - "firestore", - "dynamic-links", - "crashlytics" - ], + "keywords": ["react", "admob", "auth", "config", "digits", "phone-auth", "sms", "firestore", "cloud-firestore", "datastore", "remote-config", "transactions", "react-native", "react-native-firebase", "firebase", "fcm", "apn", "gcm", "analytics", "messaging", "database", "android", "ios", "crash", "firestack", "performance", "firestore", "dynamic-links", "crashlytics"], "peerDependencies": { "react": "*", "react-native": ">= 0.48.0", @@ -127,13 +93,8 @@ "logo": "https://opencollective.com/opencollective/logo.txt" }, "lint-staged": { - "lib/**/*.js": [ - "eslint --fix", - "git add" - ], - "tests/{src|lib}/**/*.js": [ - "eslint --fix", - "git add" - ] + "lib/**/*.js": ["eslint --fix", "git add"], + "tests/{src|lib}/**/*.js": ["eslint --fix", "git add"], + "*.{json,md,scss}": ["prettier --write", "git add"] } } diff --git a/prettier.config.js b/prettier.config.js index 87d39087..ee3c8d52 100644 --- a/prettier.config.js +++ b/prettier.config.js @@ -1,4 +1,12 @@ module.exports = { trailingComma: 'es5', singleQuote: true, + overrides: [ + { + files: '*.json', + options: { + printWidth: 400, + }, + }, + ], }; diff --git a/tests/ios/ReactNativeFirebaseDemo/Images.xcassets/AppIcon.appiconset/Contents.json b/tests/ios/ReactNativeFirebaseDemo/Images.xcassets/AppIcon.appiconset/Contents.json index c9202920..664ab6ca 100644 --- a/tests/ios/ReactNativeFirebaseDemo/Images.xcassets/AppIcon.appiconset/Contents.json +++ b/tests/ios/ReactNativeFirebaseDemo/Images.xcassets/AppIcon.appiconset/Contents.json @@ -1,79 +1,79 @@ { - "images" : [ + "images": [ { - "size" : "20x20", - "idiom" : "iphone", - "filename" : "Icon-20@2x.png", - "scale" : "2x" + "size": "20x20", + "idiom": "iphone", + "filename": "Icon-20@2x.png", + "scale": "2x" }, { - "size" : "20x20", - "idiom" : "iphone", - "filename" : "Icon-20@3x.png", - "scale" : "3x" + "size": "20x20", + "idiom": "iphone", + "filename": "Icon-20@3x.png", + "scale": "3x" }, { - "size" : "29x29", - "idiom" : "iphone", - "filename" : "Icon-29.png", - "scale" : "1x" + "size": "29x29", + "idiom": "iphone", + "filename": "Icon-29.png", + "scale": "1x" }, { - "size" : "29x29", - "idiom" : "iphone", - "filename" : "Icon-29@2x.png", - "scale" : "2x" + "size": "29x29", + "idiom": "iphone", + "filename": "Icon-29@2x.png", + "scale": "2x" }, { - "size" : "29x29", - "idiom" : "iphone", - "filename" : "Icon-29@3x.png", - "scale" : "3x" + "size": "29x29", + "idiom": "iphone", + "filename": "Icon-29@3x.png", + "scale": "3x" }, { - "size" : "40x40", - "idiom" : "iphone", - "filename" : "Icon-40@2x.png", - "scale" : "2x" + "size": "40x40", + "idiom": "iphone", + "filename": "Icon-40@2x.png", + "scale": "2x" }, { - "size" : "40x40", - "idiom" : "iphone", - "filename" : "Icon-40@3x.png", - "scale" : "3x" + "size": "40x40", + "idiom": "iphone", + "filename": "Icon-40@3x.png", + "scale": "3x" }, { - "size" : "57x57", - "idiom" : "iphone", - "filename" : "Icon-57.png", - "scale" : "1x" + "size": "57x57", + "idiom": "iphone", + "filename": "Icon-57.png", + "scale": "1x" }, { - "size" : "57x57", - "idiom" : "iphone", - "filename" : "Icon-57@2x.png", - "scale" : "2x" + "size": "57x57", + "idiom": "iphone", + "filename": "Icon-57@2x.png", + "scale": "2x" }, { - "size" : "60x60", - "idiom" : "iphone", - "filename" : "Icon-60@2x.png", - "scale" : "2x" + "size": "60x60", + "idiom": "iphone", + "filename": "Icon-60@2x.png", + "scale": "2x" }, { - "size" : "60x60", - "idiom" : "iphone", - "filename" : "Icon-60@3x.png", - "scale" : "3x" + "size": "60x60", + "idiom": "iphone", + "filename": "Icon-60@3x.png", + "scale": "3x" }, { - "idiom" : "ios-marketing", - "size" : "1024x1024", - "scale" : "1x" + "idiom": "ios-marketing", + "size": "1024x1024", + "scale": "1x" } ], - "info" : { - "version" : 1, - "author" : "xcode" + "info": { + "version": 1, + "author": "xcode" } -} \ No newline at end of file +} diff --git a/tests/ios/ReactNativeFirebaseDemo/Images.xcassets/Contents.json b/tests/ios/ReactNativeFirebaseDemo/Images.xcassets/Contents.json index da4a164c..97a8662e 100644 --- a/tests/ios/ReactNativeFirebaseDemo/Images.xcassets/Contents.json +++ b/tests/ios/ReactNativeFirebaseDemo/Images.xcassets/Contents.json @@ -1,6 +1,6 @@ { - "info" : { - "version" : 1, - "author" : "xcode" + "info": { + "version": 1, + "author": "xcode" } -} \ No newline at end of file +} diff --git a/tsconfig.json b/tsconfig.json index 550ece32..2d1dc9e1 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,25 +1,18 @@ { "compilerOptions": { - "target": "es5", - "module": "commonjs", - "jsx": "react", - "sourceMap": true, - "strict": true, - "noUnusedLocals": true, - "noUnusedParameters": true, - "noImplicitReturns": true, - "noFallthroughCasesInSwitch": true, - "moduleResolution": "node", - "experimentalDecorators": true, - "emitDecoratorMetadata": true, - "lib": [ - "es2015", - "es2016", - "esnext", - "dom" - ] + "target": "es5", + "module": "commonjs", + "jsx": "react", + "sourceMap": true, + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noImplicitReturns": true, + "noFallthroughCasesInSwitch": true, + "moduleResolution": "node", + "experimentalDecorators": true, + "emitDecoratorMetadata": true, + "lib": ["es2015", "es2016", "esnext", "dom"] }, - "files": [ - "./lib/index.d.ts" - ] + "files": ["./lib/index.d.ts"] }