0

根据 AsyncStorage 的用户设置偏好,我需要初始化两个 Firebase 环境之一。我有我用来设置 Firebase 数据库的 javascript 文件的片段,但正如您可以清楚地看到的那样,它会在等待调用时给我一个语法错误。

导出firebase符号的最佳方法是什么,但只有在进行了适当的initializeApp调用之后?

谢谢,

红色的


import firebase from 'firebase';
import { AsyncStorage } from 'react-native';
import { FIREBASE_CONFIG, FIREBASE_CONFIG_DEMO, DATA_ENVIRONMENT_STORAGE_KEY } from '../../../shared/env';


async function initializeFirebase()
{
    value = await AsyncStorage.getItem(DATA_ENVIRONMENT_STORAGE_KEY);
    if ((value == null) || (value == 'live'))
        firebase.initializeApp(FIREBASE_CONFIG);
    if (value == 'demo')
        firebase.initializeApp(FIREBASE_CONFIG_DEMO);
}
await initializeFirebase();

export var db = firebase.database();
export default firebase;
4

1 回答 1

0

如果我的理解是正确的,你想要初始化firebase,然后创建一个数据库引用并导出它。

试试这个:

初始化Firebase.js

import firebase from 'firebase';
import { AsyncStorage } from 'react-native';
import {
    FIREBASE_CONFIG,
    FIREBASE_CONFIG_DEMO,
    DATA_ENVIRONMENT_STORAGE_KEY
} from '../../../shared/env';

async function initializeFirebase() {
    const value = await AsyncStorage.getItem(DATA_ENVIRONMENT_STORAGE_KEY);

    let firebaseConfig = null;
    if ((value === null) || (value === 'live')) {
        firebaseConfig = FIREBASE_CONFIG;
    } else if (value === 'demo') {
        firebaseConfig = FIREBASE_CONFIG_DEMO;
    }

    if (firebaseConfig !== null) {
        await firebase.initializeApp(firebaseConfig);
        return firebase.database();
    }
}

export default initializeFirebase;

一些其他文件.js

import initializeFirebase from './initializeFirebase.js';

async someOtherFunction() {
    // ...    

    const database = await initializeFirebase();

    // ... do something with 'database'
}
于 2016-11-28T20:48:41.333 回答