- createFirebaseInstance
- set
- setWithMeta
- push
- pushWithMeta
- update
- updateWithMeta
- remove
- uniqueSet
- uploadFile
- uploadFiles
- deleteFile
- watchEvent
- unWatchEvent
- promiseEvents
- login
- reauthenticate
- handleRedirectResult
- logout
- createUser
- resetPassword
- confirmPasswordReset
- verifyPasswordResetCode
- applyActionCode
- updateProfile
- updateAuth
- updateEmail
- reloadAuth
- linkWithCredential
- actionCreators
- actionCreators
- ref
- database
- storage
- auth
- getFirebase
Create an extended firebase instance that has methods attached which dispatch redux actions.
firebase
object Firebase instance which to extendconfigs
object Configuration objectdispatch
Function Action dispatch function
Returns object Extended Firebase instance
import React, { Component } from 'react'
import PropTypes from 'prop-types'
import { firebaseConnect } from 'react-redux-firebase'
function Example({ firebase: { set } }) {
return (
<button onClick={() => set('some/path', { here: 'is a value' })}>
Set To Firebase
</button>
)
}
export default firebaseConnect()(Example)**
Sets data to Firebase.
path
string Path to location on Firebase which to setvalue
(object | string | boolean | number) Value to write to FirebaseonComplete
Function Function to run on complete (not required
)
Returns Promise Containing reference snapshot
Sets data to Firebase along with meta data. Currently, this includes createdAt and createdBy. Warning using this function may have unintented consequences (setting createdAt even if data already exists).
path
string Path to location on Firebase which to setvalue
(object | string | boolean | number) Value to write to FirebaseonComplete
Function Function to run on complete (not required
)
Returns Promise Containing reference snapshot
Pushes data to Firebase.
path
string Path to location on Firebase which to pushvalue
(object | string | boolean | number) Value to push to FirebaseonComplete
Function Function to run on complete (not required
)
Basic
import React from 'react'
import PropTypes from 'prop-types'
import { firebaseConnect } from 'react-redux-firebase'
function Example({ firebase: { push } }) {
return (
<button onClick={() => push('some/path', true)}>Push To Firebase</button>
)
}
export default firebaseConnect()(Example)
Returns Promise Containing reference snapshot
Pushes data to Firebase along with meta data. Currently, this includes createdAt and createdBy.
path
string Path to location on Firebase which to setvalue
(object | string | boolean | number) Value to write to FirebaseonComplete
Function Function to run on complete (not required
)
Returns Promise Containing reference snapshot
Updates data on Firebase and sends new data. More info available in the docs.
path
string Path to location on Firebase which to updatevalue
(object | string | boolean | number) Value to update to FirebaseonComplete
Function Function to run on complete (not required
)
Basic
import React from 'react'
import PropTypes from 'prop-types'
import { firebaseConnect } from 'react-redux-firebase'
function Example({ firebase: { update } }) {
function updateData() {
update('some/path', { here: 'is a value' })
}
}
return (
<button onClick={updateData}>
Update To Firebase
</button>
)
}
export default firebaseConnect()(Example)
Returns Promise Containing reference snapshot
Updates data on Firebase along with meta. Warning using this function may have unintented consequences (setting createdAt even if data already exists).
path
string Path to location on Firebase which to updatevalue
(object | string | boolean | number) Value to update to FirebaseonComplete
Function Function to run on complete (not required
)
Returns Promise Containing reference snapshot
Removes data from Firebase at a given path. NOTE A
seperate action is not dispatched unless dispatchRemoveAction: true
is
provided to config on store creation. That means that a listener must
be attached in order for state to be updated when calling remove.
path
string Path to location on Firebase which to removeonComplete
Function Function to run on complete (not required
)options
Function Options object
Basic
import React from 'react'
import PropTypes from 'prop-types'
import { firebaseConnect } from 'react-redux-firebase'
function Example({ firebase: { remove } }) {
return (
<button onClick={() => remove('some/path')}>Remove From Firebase</button>
)
}
export default firebaseConnect()(Example)
Returns Promise Containing reference snapshot
Sets data to Firebase only if the path does not already exist, otherwise it rejects. Internally uses a Firebase transaction to prevent a race condition between seperate clients calling uniqueSet.
path
string Path to location on Firebase which to setvalue
(object | string | boolean | number) Value to write to FirebaseonComplete
Function Function to run on complete (not required
)
Basic
import React, { Component } from 'react'
import PropTypes from 'prop-types'
import { firebaseConnect } from 'react-redux-firebase'
function Example({ firebase: { uniqueSet } }) {
return (
<button onClick={() => uniqueSet('some/unique/path', true)}>
Unique Set To Firebase
</button>
)
}
export default firebaseConnect()(Example)
Returns Promise Containing reference snapshot
Upload a file to Firebase Storage with the option to store its metadata in Firebase Database. More info available in the docs.
path
string Path to location on Firebase which to setfile
File File object to upload (usually first element from array output of select-file or a drag/droponDrop
)dbPath
string Database path to place uploaded file metadataoptions
object Options
Returns Promise Containing the File object
Upload multiple files to Firebase Storage with the option to store their metadata in Firebase Database.
path
string Path to location on Firebase which to setfiles
Array Array of File objects to upload (usually from a select-file or a drag/droponDrop
)dbPath
string Database path to place uploaded files metadata.options
object Optionsoptions.name
string Name of the file
Returns Promise Containing an array of File objects
Delete a file from Firebase Storage with the option to remove its metadata in Firebase Database.
path
string Path to location on Firebase which to setdbPath
string Database path to place uploaded file metadata
Returns Promise Containing the File object
Watch event. Note: this method is used internally so examples have not yet been created, and it may not work as expected.
type
string Type of watch eventpath
string Path to location on Firebase which to set listenerstoreAs
string Name of listener results within redux storeoptions
object Event options object (optional, default{}
)
Returns (Promise | void) Results of calling watch event
Unset a listener watch event. Note: this method is used internally so examples have not yet been created, and it may not work as expected.
type
string Type of watch eventpath
string Path to location on Firebase which to unset listenerqueryId
string Id of the listeneroptions
object Event options object (optional, default{}
)
Returns void
Similar to the firebaseConnect Higher Order Component but
presented as a function (not a React Component). Useful for populating
your redux state without React, e.g., for server side rendering. Only
once
type should be used as other query types such as value
do not
return a Promise.
watchArray
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 props object specified as the next parameter.options
object The options object that you would like to pass to your watchArray generating function.
Returns Promise Resolves with an array of watchEvent results
Logs user into Firebase. For examples, visit the auth section of the docs or the auth recipes section.
credentials
object Credentials for authenticatingcredentials.provider
string External provider (google | facebook | twitter)credentials.type
string Type of external authentication (popup | redirect) (only used with provider)credentials.email
string Credentials for authenticatingcredentials.password
string Credentials for authenticating (only used with email)
Returns Promise Containing user's auth data
Reauthenticate user into Firebase. For examples, visit the auth section of the docs or the auth recipes section.
credentials
object Credentials for authenticating
Returns Promise Containing user's auth data
Logs user into Firebase using external. For examples, visit the auth section
authData
object Auth data from Firebase's getRedirectResult
Returns Promise Containing user's profile
Logs user out of Firebase and empties firebase state from redux store
Returns Promise Resolves after logout is complete
Creates a new user in Firebase authentication. If
userProfile
config option is set, user profiles will be set to this
location.
credentials
object Credentials for authenticatingprofile
object Data to include within new user profile
Returns Promise Containing user's auth data
Sends password reset email
email
string Email to send recovery email to
Returns Promise Resolves after password reset email is sent
Confirm that a user's password has been reset
Returns Promise Resolves after password reset is confirmed
Verify that a password reset code from a password reset email is valid
code
string Password reset code to verify
Returns Promise Containing user auth info
Apply verification code
code
string Verification code
Returns Promise Resolves on success
Update user profile on Firebase Real Time Database or
Firestore (if useFirestoreForProfile: true
config included).
Real Time Database update uses update
method internally while
updating profile on Firestore uses set
.
profileUpdate
object Profile data to place in new profileoptions
object Options object (used to change how profile update occurs)options.useSet
boolean Use set with merge instead of update. Setting tofalse
uses update (can cause issue of profile document does not exist). Note: Only used when updating profile on Firestore (optional, defaulttrue
)options.merge
boolean Whether or not to use merge when setting profile. Note: Only used when updating profile on Firestore (optional, defaulttrue
)
Returns Promise Returns after updating profile within database
Update Auth profile object
Returns Promise Returns after updating auth profile
Update user's email
Returns Promise Resolves after email is updated in user's auth
Reload user's auth object. Must be authenticated.
Returns Promise Resolves after reloading firebase auth
Links the user account with the given credentials.
credential
firebase.auth.AuthCredential The auth credential
Returns Promise Resolves after linking auth with a credential
credential
firebase.auth.ConfirmationResult The auth credential
Returns Promise
Firebase ref function
Returns firebase.database.Reference
Firebase database service instance including all Firebase storage methods
Returns firebase.database.Database Firebase database service
Firebase storage service instance including all Firebase storage methods
Returns firebase.database.Storage Firebase storage service
Firebase auth service instance including all Firebase auth methods
Returns firebase.database.Auth
Get internal Firebase instance with methods which are wrapped with action dispatches. Useful for integrations into external libraries such as redux-thunk and redux-observable.
redux-thunk integration
import { applyMiddleware, compose, createStore } from 'redux'
import thunk from 'redux-thunk'
import { getFirebase } from 'react-redux-firebase'
import makeRootReducer from './reducers'
const fbConfig = {} // your firebase config
const store = createStore(
makeRootReducer(),
initialState,
compose(
applyMiddleware([
// Pass getFirebase function as extra argument
thunk.withExtraArgument(getFirebase)
])
)
)
// then later
export function addTodo(newTodo) {
return (dispatch, getState, getFirebase) => {
const firebase = getFirebase()
firebase.push('todos', newTodo).then(() => {
dispatch({ type: 'SOME_ACTION' })
})
}
}
Returns object Firebase instance with methods which dispatch redux actions