【问题标题】:Can't save data in the Firebase database - React Native无法在 Firebase 数据库中保存数据 - React Native
【发布时间】:2018-12-07 16:47:56
【问题描述】:

我已经在项目中安装并导入了firebase,代码如下:

componentWillMount(){
  var config = {
    apiKey: "***************************",
    authDomain: "configuracaofirebase-3a6ef.firebaseapp.com",
    databaseURL: "https://configuracaofirebase-3a6ef.firebaseio.com",
    projectId: "configuracaofirebase-3a6ef",
    storageBucket: "configuracaofirebase-3a6ef.appspot.com",
    messagingSenderId: "939162871117"
  };

  firebase.initializeApp(config);
}

salvarDados(){
  var database = firebase.database();
  database.ref("pontuacao").set("100");
}

render() {
  return (
    <View style={styles.container}>
      <Button 
        onPress={ () => { this.salvarDados() } }
        title="Salvar dados"
        color="#841584"
        accessibilityLabel="Salvar dados"
      />
      <Text>Meu App</Text>
    </View>
  );
}

当我调用“salvarDados”方法时不起作用

显示此错误:

typeError: undifined is not a function (evaluating '_app.default.database()')

【问题讨论】:

  • 请从这篇文章中删除您的 API 并从 firebase 重新生成一个。不要在任何地方发布您的 API 密钥
  • 尝试将salvarDados() 更改为salvarDados = () =&gt; {}
  • 我已经在pt.stackoverflow.com 上为您的问题提供了可能的解决方案,您应该检查一下
  • 我试过了,还是不行

标签: javascript firebase react-native firebase-realtime-database


【解决方案1】:

我只是通过添加一个新的导入来解决它:

import firebase from '@firebase/app';
import '@firebase/database';

【讨论】:

    【解决方案2】:

    尝试删除函数调用周围的 {}:

    onPress={ () => { this.salvarDados() } 
    

    会变成:

    onPress={ () => this.salvarDados() }
    

    【讨论】:

      猜你喜欢
      • 2018-03-08
      • 2017-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多