【问题标题】:Can't find variable: FirebaseStorage找不到变量:FirebaseStorage
【发布时间】:2019-02-27 10:41:37
【问题描述】:

我想在 firebase 上上传图片。当我导航到我的照片组件时,我有 ReferenceError: Can't find variable: FirebaseStorage

我关注了firebase tutorial

我的代码:

// Photo Component
import React, { Component } from 'react';
import { AppRegistry, StyleSheet, Text, TouchableOpacity, View } from 'react-native';

import firebase from '@firebase/app'

export default class Photo extends React.Component {
  constructor(props) {
    super(props);
  }

  render() {

    var storage = FirebaseStorage.getInstance();
    var storageRef = storage.reference;
    var file = Uri.fromFile(File("images/image1.png"))
    var photoStored = storageRef.child("images")
    uploadTask = photoStored.putFile(file)

    return (
      <View> 
        <Text>Hello</Text>
      </View>
     )
  }
// App Component
import firebase from '@firebase/app'
import '@firebase/auth'

firebase.initializeApp({
    apiKey: "XXXXXXX",
    authDomain: "XXXXXXX",
    databaseURL: "XXXXXXX",
    projectId: "XXXXXXX",
    storageBucket: "XXXXXXX",
    messagingSenderId: "XXXXXXX"
});

export class App extends React.Component {
...
   this.props.navigation.navigate('Photo');
...

你知道是什么问题吗?

【问题讨论】:

  • 您使用什么库来存储 Firebase?
  • @10101010: firebase : 5.5.8 和 firebase-storage : 16.0.5
  • 对于 react-native 我强烈推荐使用rnfirebase.io。我不确定 web sdk 与 react-native 的配合如何。
  • 至于你的问题FirebaseStorage没有定义。
  • 感谢 10101010。正如 Cool7 所说,我应用了错误的文档。如果我不能摆脱我的问题,我会看看你建议的图书馆

标签: reactjs firebase react-native


【解决方案1】:

我认为您指的是 Native Android Docs,您在这里混淆了:

使用以下代码在 Firestorge 上上传文件:

firebase
      .storage()
      .ref('/uploadOk.jpeg')
      .putFile(
        `${firebase.storage.Native.DOCUMENT_DIRECTORY_PATH}/ok.jpeg`
      )
      .then(successCb)
      .catch(failureCb);

更多详情可以参考以下链接:

https://github.com/invertase/react-native-firebase-docs/blob/master/docs/storage/reference/Reference.md#putfile

【讨论】:

  • 你是对的,我试图将 Native Android 文档应用到我的 React Native 应用程序中。我尝试了您的建议但触发:* undefined 不是函数(评估'_app.default.storage()')。你知道我是否忘记导入一些东西,所以 storage() 是未定义的?
  • 尝试从正确的包中导入 firebase,例如: import firebase from 'react-native-firebase';
  • @Me_Will Cool7 假设您正在使用我链接的库。
  • 您可以从这里开始在应用程序中设置 Firebase:rnfirebase.io/docs/v5.x.x/installation/initial-setup
  • 是的,这是 react-native firebase 的正确且最新的库。
猜你喜欢
  • 2017-08-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-22
  • 2016-04-30
  • 2020-07-06
  • 2021-03-25
  • 2020-06-07
相关资源
最近更新 更多