base project files
This commit is contained in:
parent
3601a85e15
commit
2b9b198abc
|
@ -0,0 +1,10 @@
|
|||
# editorconfig.org
|
||||
root = true
|
||||
|
||||
[*]
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
end_of_line = lf
|
||||
charset = utf-8
|
||||
trim_trailing_whitespace = true
|
||||
insert_final_newline = true
|
|
@ -0,0 +1,40 @@
|
|||
{
|
||||
"extends": "airbnb",
|
||||
"parser": "babel-eslint",
|
||||
"ecmaFeatures": {
|
||||
"jsx": true
|
||||
},
|
||||
"plugins": [
|
||||
"flowtype"
|
||||
],
|
||||
"env": {
|
||||
"es6": true,
|
||||
"jasmine": true
|
||||
},
|
||||
"parserOptions": {
|
||||
"ecmaFeatures": {
|
||||
"experimentalObjectRestSpread": true
|
||||
}
|
||||
},
|
||||
"rules": {
|
||||
"class-methods-use-this": 0,
|
||||
"no-underscore-dangle": 0,
|
||||
"no-use-before-define": 0,
|
||||
"arrow-body-style": 0,
|
||||
"import/prefer-default-export": 0,
|
||||
"radix": 0,
|
||||
"new-cap": 0,
|
||||
"max-len": 0,
|
||||
"no-continue": 0,
|
||||
"no-console": 0,
|
||||
"global-require": 0,
|
||||
"import/extensions": 0,
|
||||
"import/no-unresolved": 0,
|
||||
"import/no-extraneous-dependencies": 0,
|
||||
"react/jsx-filename-extension": 0
|
||||
},
|
||||
"globals": {
|
||||
"__DEV__": true,
|
||||
"window": true
|
||||
}
|
||||
}
|
|
@ -0,0 +1,105 @@
|
|||
[ignore]
|
||||
|
||||
|
||||
# Some modules have their own node_modules with overlap
|
||||
.*/node_modules/node-haste/.*
|
||||
|
||||
|
||||
# React Native problems
|
||||
.*/node_modules/react-native/Libraries/Animated/src/AnimatedInterpolation.js
|
||||
.*/node_modules/react-native/Libraries/Animated/src/Interpolation.js
|
||||
.*/node_modules/react-native/Libraries/BugReporting/dumpReactTree.js
|
||||
.*/node_modules/react-native/Libraries/CustomComponents/NavigationExperimental/NavigationHeader.js
|
||||
.*/node_modules/react-native/Libraries/CustomComponents/NavigationExperimental/NavigationPagerStyleInterpolater.js
|
||||
.*/node_modules/react-native/Libraries/Experimental/WindowedListView.js
|
||||
.*/node_modules/react-native/Libraries/Image/Image.io.js
|
||||
.*/node_modules/react-native/Libraries/NavigationExperimental/NavigationExperimental.js
|
||||
.*/node_modules/react-native/Libraries/NavigationExperimental/NavigationHeaderStyleInterpolator.js
|
||||
.*/node_modules/react-native/Libraries/Network/FormData.js
|
||||
.*/node_modules/react-native/Libraries/ReactIOS/YellowBox.js
|
||||
|
||||
|
||||
|
||||
# Ignore react and fbjs where there are overlaps, but don't ignore
|
||||
# anything that react-native relies on
|
||||
.*/node_modules/fbjs/lib/Map.js
|
||||
.*/node_modules/fbjs/lib/ErrorUtils.js
|
||||
|
||||
# Flow has a built-in definition for the 'react' module which we prefer to use
|
||||
# over the currently-untyped source
|
||||
.*/node_modules/react/react.js
|
||||
.*/node_modules/react/lib/React.js
|
||||
.*/node_modules/react/lib/ReactDOM.js
|
||||
|
||||
.*/__mocks__/.*
|
||||
.*/__tests__/.*
|
||||
|
||||
.*/commoner/test/source/widget/share.js
|
||||
|
||||
# Ignore commoner tests
|
||||
.*/node_modules/commoner/test/.*
|
||||
|
||||
# See https://github.com/facebook/flow/issues/442
|
||||
.*/react-tools/node_modules/commoner/lib/reader.js
|
||||
|
||||
# Ignore jest
|
||||
.*/node_modules/jest-cli/.*
|
||||
|
||||
# Ignore Website
|
||||
.*/website/.*
|
||||
|
||||
# Ignore generators
|
||||
.*/local-cli/generator.*
|
||||
|
||||
# Ignore BUCK generated folders
|
||||
.*\.buckd/
|
||||
|
||||
.*/node_modules/is-my-json-valid/test/.*\.json
|
||||
.*/node_modules/iconv-lite/encodings/tables/.*\.json
|
||||
.*/node_modules/y18n/test/.*\.json
|
||||
.*/node_modules/spdx-license-ids/spdx-license-ids.json
|
||||
.*/node_modules/spdx-exceptions/index.json
|
||||
.*/node_modules/resolve/test/subdirs/node_modules/a/b/c/x.json
|
||||
.*/node_modules/resolve/lib/core.json
|
||||
.*/node_modules/jsonparse/samplejson/.*\.json
|
||||
.*/node_modules/json5/test/.*\.json
|
||||
.*/node_modules/ua-parser-js/test/.*\.json
|
||||
.*/node_modules/builtin-modules/builtin-modules.json
|
||||
.*/node_modules/binary-extensions/binary-extensions.json
|
||||
.*/node_modules/url-regex/tlds.json
|
||||
.*/node_modules/joi/.*\.json
|
||||
.*/node_modules/isemail/.*\.json
|
||||
.*/node_modules/tr46/.*\.json
|
||||
.*/node_modules/protobufjs/src/bower.json
|
||||
.*/node_modules/grpc/node_modules/protobufjs/src/bower.json
|
||||
|
||||
[include]
|
||||
node_modules/fbjs/lib
|
||||
|
||||
[libs]
|
||||
lib/flow.js
|
||||
node_modules/react-native/Libraries/react-native/react-native-interface.js
|
||||
node_modules/react-native/flow
|
||||
node_modules/fbjs/flow/lib
|
||||
|
||||
[options]
|
||||
module.system=haste
|
||||
|
||||
experimental.strict_type_args=true
|
||||
unsafe.enable_getters_and_setters=true
|
||||
|
||||
esproposal.class_static_fields=enable
|
||||
esproposal.class_instance_fields=enable
|
||||
|
||||
munge_underscores=true
|
||||
|
||||
module.name_mapper='^image![a-zA-Z0-9$_-]+$' -> 'GlobalImageStub'
|
||||
module.name_mapper='^[./a-zA-Z0-9$_-]+\.\(bmp\|gif\|jpg\|jpeg\|png\|psd\|svg\|webp\|m4v\|mov\|mp4\|mpeg\|mpg\|webm\|aac\|aiff\|caf\|m4a\|mp3\|wav\|html\|pdf\)$' -> 'RelativeImageStub'
|
||||
|
||||
suppress_type=$FlowIssue
|
||||
suppress_type=$FlowFixMe
|
||||
suppress_type=$FixMe
|
||||
|
||||
suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(>=0\\.\\(2[0-4]\\|1[0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)
|
||||
suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(>=0\\.\\(2[0-4]\\|1[0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)?:? #[0-9]+
|
||||
suppress_comment=\\(.\\|\n\\)*\\$FlowFixedInNextDeploy
|
|
@ -0,0 +1,62 @@
|
|||
node_modules
|
||||
npm-debug.log
|
||||
*.DS_Store
|
||||
|
||||
# Xcode
|
||||
*.pbxuser
|
||||
*.mode1v3
|
||||
*.mode2v3
|
||||
*.perspectivev3
|
||||
*.xcuserstate
|
||||
project.xcworkspace/
|
||||
xcuserdata/
|
||||
|
||||
# Android
|
||||
|
||||
# Built application files
|
||||
android/*/build/
|
||||
|
||||
# Crashlytics configuations
|
||||
android/com_crashlytics_export_strings.xml
|
||||
|
||||
# Local configuration file (sdk path, etc)
|
||||
android/local.properties
|
||||
|
||||
# Gradle generated files
|
||||
android/.gradle/
|
||||
|
||||
# Signing files
|
||||
android/.signing/
|
||||
|
||||
# User-specific configurations
|
||||
android/.idea/gradle.xml
|
||||
android/.idea/libraries/
|
||||
android/.idea/workspace.xml
|
||||
android/.idea/tasks.xml
|
||||
android/.idea/.name
|
||||
android/.idea/compiler.xml
|
||||
android/.idea/copyright/profiles_settings.xml
|
||||
android/.idea/encodings.xml
|
||||
android/.idea/misc.xml
|
||||
android/.idea/modules.xml
|
||||
android/.idea/scopes/scope_settings.xml
|
||||
android/.idea/vcs.xml
|
||||
android/*.iml
|
||||
ios/RnFirebase.xcodeproj/xcuserdata
|
||||
|
||||
# OS-specific files
|
||||
.DS_Store
|
||||
.DS_Store?
|
||||
._*
|
||||
.Spotlight-V100
|
||||
.Trashes
|
||||
ehthumbs.db
|
||||
Thumbs.dbandroid/gradle
|
||||
android/gradlew
|
||||
android/build
|
||||
android/gradlew.bat
|
||||
android/gradle/
|
||||
.idea
|
||||
.idea
|
||||
coverage
|
||||
yarn.lock
|
|
@ -0,0 +1,14 @@
|
|||
*.swp
|
||||
*~
|
||||
*.iml
|
||||
.*.haste_cache.*
|
||||
.DS_Store
|
||||
.idea
|
||||
.babelrc
|
||||
.eslintrc
|
||||
npm-debug.log
|
||||
src/
|
||||
examples/
|
||||
public/
|
||||
scripts/
|
||||
test/
|
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
"ignore_dirs": [
|
||||
".git",
|
||||
"node_modules",
|
||||
"android/build",
|
||||
"android/.idea",
|
||||
"android/.gradle",
|
||||
"android/gradle",
|
||||
".idea"
|
||||
]
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
Copyright (c) 2017 Mike Diarmid <mike@invertase.io>
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
|
@ -0,0 +1,49 @@
|
|||
# React Native Firebase
|
||||
|
||||
RNFirebase makes using the latest [Firebase](http://firebase.com) with React Native straight-forward.
|
||||
|
||||
```
|
||||
npm i react-native-firebase --save
|
||||
```
|
||||
|
||||
[![Gitter](https://badges.gitter.im/invertase/react-native-firebase.svg)](https://gitter.im/invertase/react-native-firebase?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
|
||||
[![npm version](https://img.shields.io/npm/v/react-native-firebase.svg)](https://www.npmjs.com/package/react-native-firebase)
|
||||
[![License](https://img.shields.io/npm/l/react-native-firebase.svg)](/LICENSE)
|
||||
|
||||
RNFirebase is a _light-weight_ layer sitting on-top of the native Firebase libraries for both iOS and Android which mirrors the React Native JS api as closely as possible.
|
||||
|
||||
Featuring; authentication, storage, real-time database, presence, analytics, cloud messaging, remote configuration, redux support and more!
|
||||
|
||||
## RNFirebase vs Firebase JS lib
|
||||
|
||||
Although the [Firebase](https://www.npmjs.com/package/firebase) JavaScript library will work with React Native, it is mainly designed for the web.
|
||||
|
||||
The native SDK's are much better for performance compared to the web SDK. The web SDK will run on the same thread as your apps ([JS thread](https://facebook.github.io/react-native/docs/performance.html#javascript-frame-rate)) therefore limiting your JS framerate, potentially affecting things touch events and transitions/animations.
|
||||
|
||||
The native SDK's also contains functionality that the web SDK's do not, for example [Analytics](/docs/api/analytics.md) and [Remote Config](/docs/api/remote-config.md).
|
||||
|
||||
## Example app
|
||||
|
||||
We have a working application example available in at [invertase/firebase-app](https://github.com/invertase/firebase-app). Check it out for more details about how to use firebase with react native.
|
||||
|
||||
## Documentation
|
||||
|
||||
* Installation
|
||||
* [iOS](docs/installation.ios.md)
|
||||
* [Android](docs/installation.android.md)
|
||||
* [Firebase Setup](docs/firebase-setup.md)
|
||||
* API
|
||||
* [Authentication](docs/api/authentication.md)
|
||||
* [Analytics](docs/api/analytics.md)
|
||||
* [Storage](docs/api/storage.md)
|
||||
* [Realtime Database](docs/api/database.md)
|
||||
* [Presence](docs/api/presence.md)
|
||||
* [ServerValue](docs/api/server-value.md)
|
||||
* [Cloud Messaging](docs/api/cloud-messaging.md)
|
||||
* [Remote Config](docs/api/remote-config.md)
|
||||
* [Events](docs/api/events.md)
|
||||
* [Redux](docs/redux.md)
|
||||
|
||||
## Contributing
|
||||
|
||||
- TODO
|
|
@ -0,0 +1,28 @@
|
|||
require 'json'
|
||||
|
||||
package = JSON.parse(File.read('package.json'))
|
||||
|
||||
Pod::Spec.new do |s|
|
||||
s.name = "RNFirebase"
|
||||
s.version = package["version"]
|
||||
s.summary = package["description"]
|
||||
s.description = <<-DESC
|
||||
Wanna integrate firebase into your app using React Native?
|
||||
DESC
|
||||
s.homepage = "http://invertase.io"
|
||||
s.license = package['license']
|
||||
s.author = "Mike Diarmid"
|
||||
s.source = { :git => "https://github.com/invertase/react-native-firebase.git", :tag => "v#{s.version}" }
|
||||
s.social_media_url = 'http://twitter.com/invertaseio'
|
||||
s.platform = :ios, "8.0"
|
||||
s.header_dir = 'ios/RNFirebase'
|
||||
s.preserve_paths = 'README.md', 'package.json', '*.js'
|
||||
s.source_files = 'ios/RNFirebase/*.{h,m}'
|
||||
s.dependency 'React'
|
||||
s.dependency 'Firebase/Auth'
|
||||
s.dependency 'Firebase/Core'
|
||||
s.dependency 'Firebase/Database'
|
||||
s.dependency 'Firebase/Messaging'
|
||||
s.dependency 'Firebase/RemoteConfig'
|
||||
s.dependency 'Firebase/Storage'
|
||||
end
|
|
@ -0,0 +1,5 @@
|
|||
/**
|
||||
* @flow
|
||||
*/
|
||||
import firebase from './lib/firebase';
|
||||
export default firebase;
|
|
@ -0,0 +1,5 @@
|
|||
/**
|
||||
* @flow
|
||||
*/
|
||||
import firebase from './lib/firebase';
|
||||
export default firebase;
|
|
@ -0,0 +1,2 @@
|
|||
import Firebase from './firebase';
|
||||
export default Firebase;
|
|
@ -0,0 +1,89 @@
|
|||
{
|
||||
"name": "react-native-firebase",
|
||||
"version": "1.0.0-alpha",
|
||||
"author": "Invertase <contact@invertase.io> (http://invertase.io)",
|
||||
"description": "A react native firebase adapter supporting android and ios.",
|
||||
"main": "index",
|
||||
"scripts": {
|
||||
"start": "node node_modules/react-native/local-cli/cli.js start",
|
||||
"build": "./node_modules/.bin/babel --source-maps=true --out-dir=dist .",
|
||||
"dev": "npm run compile -- --watch",
|
||||
"lint": "eslint ./src",
|
||||
"publish_pages": "gh-pages -d public/",
|
||||
"test": "./node_modules/.bin/mocha",
|
||||
"watchcpx": "echo 'See https://github.com/wix/wml for watching changes. \r\n'"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/invertase/react-native-firebase.git"
|
||||
},
|
||||
"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"
|
||||
]
|
||||
},
|
||||
"license": "MIT",
|
||||
"keywords": [
|
||||
"react",
|
||||
"react-native",
|
||||
"react-native-firebase",
|
||||
"firebase",
|
||||
"fcm",
|
||||
"analytics",
|
||||
"messaging",
|
||||
"database",
|
||||
"android",
|
||||
"ios",
|
||||
"crash",
|
||||
"firestack"
|
||||
],
|
||||
"peerDependencies": {
|
||||
"react": "*",
|
||||
"react-native": "*"
|
||||
},
|
||||
"rnpm": {
|
||||
"commands": {
|
||||
"prelink": "node_modules/react-native-firebase/bin/prepare.sh",
|
||||
"postlink": "node_modules/react-native-firebase/bin/cocoapods.sh"
|
||||
},
|
||||
"ios": {
|
||||
"project": "ios/Firebase.xcodeproj"
|
||||
},
|
||||
"android": {
|
||||
"packageInstance": "new FirebasePackage()"
|
||||
}
|
||||
},
|
||||
"devDependencies": {
|
||||
"babel-eslint": "^7.0.0",
|
||||
"babel-jest": "^14.1.0",
|
||||
"babel-preset-react-native": "^1.9.0",
|
||||
"cpx": "^1.5.0",
|
||||
"debug": "^2.2.0",
|
||||
"enzyme": "^2.4.1",
|
||||
"eslint": "^3.8.1",
|
||||
"eslint-config-airbnb": "^12.0.0",
|
||||
"eslint-plugin-flowtype": "^2.20.0",
|
||||
"eslint-plugin-import": "^2.0.1",
|
||||
"eslint-plugin-jsx-a11y": "^2.2.3",
|
||||
"eslint-plugin-react": "^6.4.1",
|
||||
"flow-bin": "^0.35.0",
|
||||
"jest": "^14.1.0",
|
||||
"jest-react-native": "^14.1.3",
|
||||
"mocha": "^3.0.2",
|
||||
"react": "^15.3.0",
|
||||
"react-dom": "^15.3.0",
|
||||
"react-native-mock": "^0.2.6",
|
||||
"react-test-renderer": "^15.3.0",
|
||||
"should": "^11.1.0",
|
||||
"sinon": "^2.0.0-pre.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"bows": "^1.6.0",
|
||||
"es6-symbol": "^3.1.0"
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue