Files
react-native-firebase/docs/app/usage.md
Lisa Oppermann 6d54d8c743 docs: update usage of secondary app (#3430)
I struggled a lot with simply switching the database URL within the [DEFAULT] app instance during run time.
I documented my solution in this ticket: https://github.com/invertase/react-native-firebase/issues/3049

This PR shall reflect my findings with switching app instances.
2020-05-05 22:44:33 +01:00

3.0 KiB

title, description, icon, next, previous
title description icon next previous
Core/App Functionality & examples of using the Core/App dependency with React Native Firebase. //static.invertase.io/assets/social/firebase-logo.png /app/utils /storage/usage

The App module is available by default once you have installed the React Native Firebase library by following the Getting Started documentation. The App module currently provides the following functionality:

Secondary Apps

Unlike the Firebase Web SDK, there is no need to manually call the initalizeApp method with your project credentials. The native Android & iOS SDKs automatically connect to your Firebase project using the credentials provided during the Getting Started installation steps. The app module does however provide support for manually initializing secondary Firebase app instances.

Currently, the native Firebase SDKs only provide functionality for creating secondary apps on the following services:

Initializing secondary apps

The module exposes an initalizeApp method which accepts arguments containing the credentials and options for your secondary apps:

import firebase from '@react-native-firebase/app';

// Your secondary Firebase project credentials...
const credentials = {
  clientId: '',
  appId: '',
  apiKey: '',
  databaseURL: '',
  storageBucket: '',
  messagingSenderId: '',
  projectId: '',
};

const config = {
  name: 'SECONDARY_APP',
};

await firebase.initalizeApp(credentials, config);

Once created, you can confirm the app instance has been created by accessing the apps property on the module:

console.log(firebase.apps);

Switching app instance

You can switch app instances at any time whilst developing by calling the app method with the name of the secondary app:

import firebase from '@react-native-firebase/app';
import '@react-native-firebase/auth';

// Example using auth
firebase.app('SECONDARY_APP').auth().currentUser;

Or pass the secondary app instance you created above directly to the desired module, for example:

import firebase from '@react-native-firebase/app';
import auth from '@react-native-firebase/auth';

// create secondary app as described above
const secondaryApp = await firebase.initalizeApp(credentials, config);

// Example using auth with passing the secondary app instance
auth(secondaryApp).currentUser;

Deleting instances

You can delete any secondary instances by calling the delete method on the instance:

await firebase.app('SECONDARY_APP').delete();