2

我尝试了所有工作。有什么区别?

import firebase from 'react-native-firebase';

const defaultApp = firebase.app();

defaultApp.database().ref('foobar').once('value', (snapshot) => {
  // snapshot from default app
});

对比

import firebase from 'react-native-firebase';

firebase.database().ref('foobar').once('value', (snapshot) => {
  // snapshot from default app
});
4

2 回答 2

4

这两种方法是等价的。第二个只是依赖于一些硬编码的默认值,而第一个更明确。如果您想(例如)在单​​个应用程序中访问数据库,这一点尤其明显。

我们的文档很好地解释了这一点,所以我将从那里引用:

在大多数情况下,您只需初始化一个默认应用程序。您可以通过两种等效方式从该应用程序访问服务:

// Initialize the default app
var defaultApp = firebase.initializeApp(defaultAppConfig);

console.log(defaultApp.name);  // "[DEFAULT]"

// You can retrieve services via the defaultApp variable...
var defaultStorage = defaultApp.storage();
var defaultDatabase = defaultApp.database();

// ... or you can use the equivalent shorthand notation
defaultStorage = firebase.storage();
defaultDatabase = firebase.database();

某些用例要求您同时创建多个应用程序。例如,您可能希望从一个 Firebase 项目的实时数据库中读取数据并将文件存储在另一个项目中。或者,您可能希望对一个应用程序进行身份验证,同时让另一个应用程序未经身份验证。Firebase SDK 允许您同时创建多个应用程序,每个应用程序都有自己的配置信息。

// Initialize the default app
firebase.initializeApp(defaultAppConfig);

// Initialize another app with a different config
var otherApp = firebase.initializeApp(otherAppConfig, "other");

console.log(firebase.app().name);  // "[DEFAULT]"
console.log(otherApp.name);        // "other"

// Use the shorthand notation to retrieve the default app's services
var defaultStorage = firebase.storage();
var defaultDatabase = firebase.database();

// Use the otherApp variable to retrieve the other app's services
var otherStorage = otherApp.storage();
var otherDatabase = otherApp.database();

注意:每个应用实例都有自己的配置选项和身份验证状态。

于 2017-10-04T03:46:48.050 回答
0

您不需要调用该方法,除非您在应用程序中使用多个 Firebase 应用程序实例

于 2018-03-29T15:21:48.433 回答