React Native - 使用 @react-native-firebase/storage 将图片上传到 Firebase - 尚未创建 Firebase 应用'[DEFAULT]'



我在将图片上传到Firebase时收到以下错误:

错误:未创建 Firebase 应用"[DEFAULT]" - 调用 firebase.initializeApp((

这是我的代码:

  1. 应用.js

    import * as Firebase from 'firebase';
    componentDidMount() {
    Firebase.initializeApp(firebaseConfig);
    }
    
  2. 简介.js

    import * as Firebase from 'firebase';
    import rnFb from '@react-native-firebase/storage';
    uploadImage = localUri =>
    new Promise((resolve, reject) => {
    const localUri2 = Platform.OS === 'ios' ? localUri.replace('file://', '') : localUri;
    const fbUri = Firebase.storage().ref();
    rnFb().ref(localUri2).putFile(fbUri)
    .then(
    () => { resolve(); }
    )
    .catch(
    (e) => { reject(e); }
    );
    });
    

它在.putFile线上失败了。

我不明白问题是什么,因为我在App.js打电话给.initializeApp()

更新 12/21我在rnFb().ref(localUri2).putFile(fbUri)之前添加了console.log(Firebase.apps.length);,输出是 1......确实很奇怪。

。如果我完全按照错误要求进行操作并在rnFb().ref(localUri2).putFile(fbUri)之前立即调用firebase.initializeApp(),则会收到错误错误错误:

Firebase: Firebase App named '[DEFAULT]' already exists

帮助!!

我的理解是,@react-native-firebase内部使用的Firebase SDK独立于firebase的普通Firebase SDK。

可以使用以下方法公开它:

import firebase from '@react-native-firebase/app';
// OR
import { firebase } from '@react-native-firebase/storage';

应用这些更改(并简化代码(将为您带来以下结果:

import storage, { firebase } from '@react-native-firebase/storage';
// can possibly be somewhere else
firebase.initializeApp(firebaseConfig);
uploadImage = localUri => {
const localUri2 = Platform.OS === 'ios' ? localUri.replace('file://', '') : localUri;
return storage().ref('/path/to/upload/to').putFile(localUri2)
}

与其使用firebase.initializeApp()"客户端初始化",还可以使用"本机初始化" 适用于安卓和 iOS。

您是否遵循了 API 文档?我似乎在文档中找不到您需要手动调用initializeApp()的任何地方

我认为你的fbUri是错误的。参数必须是字符串。 例如:

firebase
.storage()
.ref('remote_path') // remote path where you want to store
.putFile(
'local/ok.jpeg' // local file
)
.then(successCb)
.catch(failureCb);

相关内容

  • 没有找到相关文章

最新更新