Skip to content

Commit 9a32d8c

Browse files
authored
v2.0.0 beta.9 (prescottprue#281)
* `reloadAuth` added for reloading auth (calls `firebase.auth().currentUser.reload()`) - prescottprue#273 * `linkWithCredential` added for linking auth with credential - prescottprue#268 * `store.firebaseAuthIsReady` is now added by `reactReduxFirebase` store enhancer - promise that resolves once auth state is ready - prescottprue#264 * `authIsReady` promise added for waiting for auth to be ready - prescottprue#264 * `ordered` always set as `null` instead of `undefined` - fixes possible issue of `isLoaded` not always being correct * `firebaseStateName` constant - assumed name of firebase state to be used in `authIsReady` * `attachAuthIsLoaded` constant - boolean for enabling/disabling the attaching of `firebaseAuthIsReady` to store (`true` by default) * `yarn.lock` removed - npm5 is faster * `v2.0.0` branch added to travis config (so v2.0.0 pushes/merges are built) * `babel-preset-env` used in place of `babel-preset-es2015` (fixes deprecation warning)
1 parent c1c98be commit 9a32d8c

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

63 files changed

+27091
-7680
lines changed

.babelrc

+9-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,13 @@
11
{
2-
"presets": ["es2015", "react"],
2+
"presets": [
3+
"react",
4+
["env", {
5+
"targets": {
6+
"chrome": 52,
7+
"browsers": ["last 2 versions", "safari >= 7"]
8+
}
9+
}]
10+
],
311
"plugins": [
412
"lodash",
513
"add-module-exports",

.travis.yml

+18-18
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,35 @@
1+
sudo: false
2+
13
language: node_js
24

35
node_js:
4-
- "6"
5-
- "8"
6+
- 6.11.3 # L.T.S
7+
- 8 # Current
68

7-
sudo: false
9+
notifications:
10+
# Only send notifications when travis status changes
11+
email:
12+
on_failure: change
13+
on_success: change
14+
15+
addons:
16+
code_climate:
17+
repo_token: $CODE_CLIMATE
18+
19+
cache:
20+
directories:
21+
- node_modules
822

923
branches:
1024
only:
1125
- master
26+
- v2.0.0
1227

1328
script:
1429
- npm run lint:fix
1530
- npm run test:cov
1631

17-
cache:
18-
yarn: true
19-
directories:
20-
- node_modules
21-
22-
addons:
23-
code_climate:
24-
repo_token: $CODE_CLIMATE
25-
2632
after_success:
2733
- npm install -g codeclimate-test-reporter
2834
- codeclimate-test-reporter < coverage/lcov.info
2935
- npm run codecov
30-
31-
notifications:
32-
email:
33-
# Only send notifications when travis status changes
34-
on_failure: change
35-
on_success: change

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ npm install --save react-redux-firebase
4545

4646
The above install command will install the `@latest` tag. You may also use the following tags when installing to get different versions:
4747

48-
* `@canary` - Most possible up to date code. Currently, points to active progress with `v2.0.0-*` pre-releases. *Warning:* Syntax is different than current stable version.
48+
* `@next` - Most possible up to date code. Currently, points to active progress with `v2.0.0-*` pre-releases. *Warning:* Syntax is different than current stable version.
4949

5050
Be aware of changes when using a version that is not tagged `@latest`. Please report any issues you encounter, and try to keep an eye on the [releases page](https://github.com/prescottprue/react-redux-firebase/releases) for updates.
5151

SUMMARY.md

+9-8
Original file line numberDiff line numberDiff line change
@@ -15,20 +15,21 @@
1515
* [Roles](/docs/recipes/roles.md)
1616
* [Populate](/docs/recipes/populate.md)
1717
* [Upload](/docs/recipes/upload.md)
18-
* [Redux Thunk](/docs/recipes/thunks.md)
19-
* [Redux Form](/docs/recipes/redux-form.md)
20-
* [Redux Persist](/docs/recipes/redux-persist.md)
21-
* [Redux Saga](/docs/recipes/redux-saga.md)
22-
* [Redux Observable](/docs/recipes/redux-observable.md)
23-
* [React Native](/docs/recipes/react-native.md)
24-
* [React Chrome Redux](/docs/recipes/react-chrome-redux.md)
2518
* [Server Side Rendering](/docs/recipes/ssr.md)
2619
* [Performance](/docs/recipes/performance.md)
20+
* [Integrations](/docs/integrations/README.md)
21+
* [Redux Thunk](/docs/integrations/thunks.md)
22+
* [Redux Form](/docs/integrations/redux-form.md)
23+
* [Redux Persist](/docs/integrations/redux-persist.md)
24+
* [Redux Saga](/docs/integrations/redux-saga.md)
25+
* [Redux Observable](/docs/integrations/redux-observable.md)
26+
* [React Native](/docs/integrations/react-native.md)
27+
* [React Chrome Redux](/docs/integrations/react-chrome-redux.md)
2728
* [API Reference](/docs/api/README.md)
2829
* [constants](/docs/api/constants.md)
2930
* [firebaseConnect](/docs/api/connect.md)
3031
* [firebaseStateReducer](/docs/api/reducer.md)
31-
* [reactReduxFirebase](/docs/api/compose.md)
32+
* [reactReduxFirebase](/docs/api/enhancer.md)
3233
* [props.firebase](/docs/api/props-firebase.md)
3334
* [getFirebase](/docs/api/get-firebase.md)
3435
* [firebaseInstance](/docs/api/firebaseInstance.md)

bin/api-docs-generate.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ const files = [
99
dest: 'firebaseInstance.md'
1010
},
1111
{
12-
src: 'compose.js',
13-
dest: 'compose.md'
12+
src: 'enhancer.js',
13+
dest: 'enhancer.md'
1414
},
1515
{
1616
src: 'helpers.js',

docs/api/compose.md

+3-2
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,9 @@
66

77
## reactReduxFirebase
88

9-
Middleware that handles configuration (placed in redux's
10-
`compose` call)
9+
Redux store enhancer that accepts configuration options and adds
10+
store.firebase and store.firebaseAuth. Enhancers are most commonly placed in redux's `compose` call
11+
along side applyMiddleware.
1112

1213
**Parameters**
1314

docs/api/connect.md

+53-24
Original file line numberDiff line numberDiff line change
@@ -7,33 +7,31 @@
77

88
## createFirebaseConnect
99

10-
WARNING!! Advanced feature, and only be used when needing to
11-
access a firebase instance created under a different store key
10+
Function that creates a Higher Order Component that
11+
automatically listens/unListens to provided firebase paths using
12+
React's Lifecycle hooks.
13+
**WARNING!!** This is an advanced feature, and should only be used when
14+
needing to access a firebase instance created under a different store key.
1215

1316
**Parameters**
1417

15-
- `storeKey` **[String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** Name of key of store to connect to (store that contains state.firebase) (optional, default `'store'`)
18+
- `storeKey` **[String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** Name of redux store which contains
19+
Firebase state (state.firebase) (optional, default `'store'`)
1620

1721
**Examples**
1822

19-
_Data_
23+
_Basic_
2024

2125
```javascript
22-
import { connect } from 'react-redux'
26+
// this.props.firebase set on App component as firebase object with helpers
2327
import { createFirebaseConnect } from 'react-redux-firebase'
24-
25-
// sync /todos from firebase (in other store) into redux
26-
const fbWrapped = createFirebaseConnect('someOtherName')(['todos'])
27-
28-
// pass todos list from redux as this.props.todosList
29-
export default connect(({ firebase: data: { todos }, auth, profile }) => ({
30-
todos,
31-
profile, // pass profile data as this.props.profile
32-
auth // pass auth data as this.props.auth
33-
}))(fbWrapped)
28+
// create firebase connect that uses another redux store
29+
const firebaseConnect = createFirebaseConnect('anotherStore')
30+
// use the firebaseConnect to wrap a component
31+
export default firebaseConnect()(SomeComponent)
3432
```
3533

36-
Returns **[Function](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/function)** that returns a firebaseConnect function, which is later used to wrap a component
34+
Returns **[Function](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/function)** HOC that accepts a watchArray and wraps a component
3735

3836
## firebaseConnect
3937

@@ -44,9 +42,7 @@ to provided firebase paths using React's Lifecycle hooks.
4442

4543
**Parameters**
4644

47-
- `watchArray` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)** Array of objects or strings for paths to sync
48-
from Firebase. Can also be a function that returns the array. The function
49-
is passed the current props and the firebase object.
45+
- `watchArray` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)** Array of objects or strings for paths to sync from Firebase. Can also be a function that returns the array. The function is passed the current props and the firebase object.
5046

5147
**Examples**
5248

@@ -70,11 +66,44 @@ const fbWrapped = firebaseConnect([
7066
])(App)
7167

7268
// pass todos list from redux as this.props.todosList
73-
export default connect(({ firebase: data: { todos }, auth, profile }) => ({
74-
todos,
75-
profile, // pass profile data as this.props.profile
76-
auth // pass auth data as this.props.auth
77-
>>>>>>> master
69+
export default connect((state) => ({
70+
todosList: state.firebase.data.todos,
71+
profile: state.firebase.profile, // pass profile data as this.props.profile
72+
auth: state.firebase.auth // pass auth data as this.props.auth
73+
}))(fbWrapped)
74+
```
75+
76+
_Data that depends on props_
77+
78+
```javascript
79+
import { connect } from 'react-redux'
80+
import { firebaseConnect } from 'react-redux-firebase'
81+
82+
// sync /todos from firebase into redux
83+
const fbWrapped = firebaseConnect((props) => ([
84+
`todos/${props.type}`
85+
])(App)
86+
87+
// pass todos list for the specified type of todos from redux as `this.props.todosList`
88+
export default connect(({ firebase: { data } }, { type }) => ({
89+
todosList: data.todos && data.todos[type],
90+
}))(fbWrapped)
91+
```
92+
93+
_Data that depends on auth state_
94+
95+
```javascript
96+
import { connect } from 'react-redux'
97+
import { firebaseConnect } from 'react-redux-firebase'
98+
99+
// sync /todos from firebase into redux
100+
const fbWrapped = firebaseConnect((props, firebase) => ([
101+
`todos/${firebase._.authUid}`
102+
])(App)
103+
104+
// pass todos list for the specified type of todos from redux as `this.props.todosList`
105+
export default connect(({ firebase: { data, auth } }) => ({
106+
todosList: data.todos && data.todos[auth.uid],
78107
}))(fbWrapped)
79108
```
80109

docs/api/constants.md

+16-3
Original file line numberDiff line numberDiff line change
@@ -50,13 +50,20 @@ Object containing all action types
5050
- `FILE_DELETE_COMPLETE` **[String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** `@@reactReduxFirebase/FILE_DELETE_COMPLETE`
5151
- `AUTH_UPDATE_START` **[String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** `@@reactReduxFirebase/AUTH_UPDATE_START`
5252
- `AUTH_UPDATE_ERROR` **[String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** `@@reactReduxFirebase/AUTH_UPDATE_ERROR`
53-
- `AUTH_UPDATE_COMPLETE` **[String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** `@@reactReduxFirebase/AUTH_UPDATE_COMPLETE`
53+
- `AUTH_UPDATE_SUCCESS` **[String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** `@@reactReduxFirebase/AUTH_UPDATE_SUCCESS`
5454
- `PROFILE_UPDATE_START` **[String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** `@@reactReduxFirebase/PROFILE_UPDATE_START`
5555
- `PROFILE_UPDATE_ERROR` **[String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** `@@reactReduxFirebase/PROFILE_UPDATE_ERROR`
56-
- `PROFILE_UPDATE_COMPLETE` **[String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** `@@reactReduxFirebase/PROFILE_UPDATE_COMPLETE`
56+
- `PROFILE_UPDATE_SUCCESS` **[String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** `@@reactReduxFirebase/PROFILE_UPDATE_SUCCESS`
5757
- `EMAIL_UPDATE_START` **[String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** `@@reactReduxFirebase/EMAIL_UPDATE_START`
5858
- `EMAIL_UPDATE_ERROR` **[String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** `@@reactReduxFirebase/EMAIL_UPDATE_ERROR`
59-
- `EMAIL_UPDATE_COMPLETE` **[String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** `@@reactReduxFirebase/EMAIL_UPDATE_COMPLETE`
59+
- `EMAIL_UPDATE_SUCCESS` **[String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** `@@reactReduxFirebase/EMAIL_UPDATE_SUCCESS`
60+
- `AUTH_RELOAD_START` **[String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** `@@reactReduxFirebase/AUTH_RELOAD_START`
61+
- `AUTH_RELOAD_ERROR` **[String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** `@@reactReduxFirebase/AUTH_RELOAD_ERROR`
62+
- `AUTH_RELOAD_SUCCESS` **[String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** `@@reactReduxFirebase/AUTH_RELOAD_SUCCESS`
63+
- `AUTH_LINK_START` **[String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** `@@reactReduxFirebase/AUTH_LINK_START`
64+
- `AUTH_LINK_ERROR` **[String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** `@@reactReduxFirebase/AUTH_LINK_ERROR`
65+
- `AUTH_LINK_SUCCESS` **[String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** `@@reactReduxFirebase/AUTH_LINK_SUCCESS`
66+
- `AUTH_EMPTY_CHANGE` **[String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** `@@reactReduxFirebase/AUTH_LINK_SUCCESS`
6067

6168
**Examples**
6269

@@ -107,3 +114,9 @@ Default configuration options
107114
dispatch UNSET_LISTENER when disabling listeners for a specific path. USE WITH CAUTION
108115
Setting this to true allows an action to be called that removes data
109116
from redux (which might not always be expected).
117+
- `firebaseStateName` **[String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** 'firebase' Assumed name of Firebase
118+
state (name given when passing reducer to combineReducers). Used in
119+
firebaseAuthIsReady promise (see #264).
120+
- `attachAuthIsReady` **[Boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** `true` Whether or not to attach
121+
firebaseAuthIsReady to store. authIsLoaded can be imported and used
122+
directly instead based on preference.

docs/api/enhancer.md

+92
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
<!-- Generated by documentation.js. Update this documentation by updating the source code. -->
2+
3+
### Table of Contents
4+
5+
- [reactReduxFirebase](#reactreduxfirebase)
6+
7+
## reactReduxFirebase
8+
9+
Redux store enhancer that accepts configuration options and adds
10+
store.firebase and store.firebaseAuth. Enhancers are most commonly placed in redux's `compose` call
11+
along side applyMiddleware.
12+
13+
**Parameters**
14+
15+
- `instance`
16+
- `otherConfig`
17+
18+
**Properties**
19+
20+
- `firebaseInstance` **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** Initiated firebase instance (can also
21+
be library following Firebase JS API such as `react-native-firebase`)
22+
- `config` **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** Containing react-redux-firebase specific configuration
23+
- `config.userProfile` **[String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** Location on firebase to store user profiles
24+
- `config.enableLogging` **[Boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** Whether or not to enable Firebase database logging.
25+
**Note**: Only works if instance has enableLogging function.
26+
- `config.profileFactory` **[Function](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/function)** Factory for modifying how user profile is saved.
27+
- `config.presence` **[Boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** Location on Firebase to store currently
28+
online users list. Often set to `'presence'` or `'onlineUsers'`.
29+
- `config.sessions` **[Boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** Location on Firebase where user
30+
sessions are stored (only if presense is set). Often set to `'sessions'` or `'onlineUsers'`.
31+
- `config.updateProfileOnLogin` **[Boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** Whether or not to update
32+
profile when logging in. (default: `false`)
33+
- `config.resetBeforeLogin` **[Boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** Whether or not to empty profile
34+
and auth state on login
35+
- `config.enableRedirectHandling` **[Boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** Whether or not to enable
36+
auth redirect handling listener. (default: `true`)
37+
- `config.onAuthStateChanged` **[Function](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/function)** Function run when auth state
38+
changes. Argument Pattern: `(authData, firebase, dispatch)`
39+
- `config.enableEmptyAuthChanges` **[Boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** Whether or not to enable
40+
empty auth changes. When set to true, `onAuthStateChanged` will be fired with,
41+
empty auth changes such as undefined on initialization. See
42+
[#137](https://github.com/prescottprue/react-redux-firebase/issues/137) for
43+
more details. (default: `false`)
44+
- `config.onRedirectResult` **[Function](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/function)** Function run when redirect
45+
result is returned. Argument Pattern: `(authData, firebase, dispatch)`
46+
- `config.customAuthParameters` **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** Object for setting which
47+
customAuthParameters are passed to external auth providers.
48+
- `config.profileFactory` **[Function](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/function)** Factory for modifying how user profile is saved.
49+
- `config.fileMetadataFactory` **[Function](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/function)** Factory for modifying
50+
how file meta data is written during file uploads
51+
- `config.profileParamsToPopulate` **([Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array) \| [String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String))** Parameters within
52+
profile object to populate. As of `v2.0.0` data is only loaded for population, not actually automatically populated
53+
(allows access to both unpopulated and populated profile data).
54+
- `config.autoPopulateProfile` **[Boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** **NOTE**: Not yet enabled for v2.0.0. Whether or not to
55+
automatically populate profile with data loaded through profileParamsToPopulate config. (default: `true`)
56+
- `config.setProfilePopulateResults` **[Boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** Whether or not to
57+
call SET actions for data that results from populating profile to redux under
58+
the data path. For example role parameter on profile populated from 'roles'
59+
root. True will call SET_PROFILE as well as a SET action with the role that
60+
is loaded (places it in data/roles). (default: `false`)
61+
62+
**Examples**
63+
64+
_Setup_
65+
66+
```javascript
67+
import { createStore, compose } from 'redux'
68+
import { reactReduxFirebase } from 'react-redux-firebase'
69+
import * as firebase from 'firebase'
70+
71+
// React Redux Firebase Config
72+
const config = {
73+
userProfile: 'users', // saves user profiles to '/users' on Firebase
74+
// here is where you place other config options
75+
}
76+
77+
// initialize script from Firebase page
78+
const fbConfg = {} // firebase config object
79+
firebase.initializeApp(fbConfig)
80+
81+
// Add react-redux-firebase to compose
82+
// Note: In full projects this will often be within createStore.js or store.js
83+
const createStoreWithFirebase = compose(
84+
reactReduxFirebase(firebase, config),
85+
)(createStore)
86+
87+
// Use Function later to create store
88+
const store = createStoreWithFirebase(rootReducer, initialState)
89+
```
90+
91+
Returns **[Function](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/function)** That accepts a component and returns a Component which
92+
wraps the provided component (higher order component).

docs/api/firebaseInstance.md

+18
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@
2424
- [updateProfile](#updateprofile)
2525
- [updateAuth](#updateauth)
2626
- [updateEmail](#updateemail)
27+
- [reloadAuth](#reloadauth)
28+
- [linkWithCredential](#linkwithcredential)
2729
- [ref](#ref)
2830
- [database](#database)
2931
- [storage](#storage)
@@ -385,6 +387,22 @@ Update user's email
385387

386388
Returns **[Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)**
387389

390+
## reloadAuth
391+
392+
Reload user's auth object. Must be authenticated.
393+
394+
Returns **[Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)**
395+
396+
## linkWithCredential
397+
398+
Links the user account with the given credentials.
399+
400+
**Parameters**
401+
402+
- `credential` **firebase.auth.AuthCredential** The auth credential
403+
404+
Returns **[Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)**
405+
388406
## ref
389407

390408
Firebase ref function

0 commit comments

Comments
 (0)