【问题标题】:Undefined is not an object error using Expo and Firebase Database未定义不是使用 Expo 和 Firebase 数据库的对象错误
【发布时间】:2017-11-03 02:04:14
【问题描述】:

我正在使用 Expo 构建一个 ReactNative 应用程序并尝试从 Firebase 数据库访问数据。

我正在努力:

componentWillMount() {
    firebase.database().ref('/AppUrl/TestData').on('value', (snapshot) => {
        if (snapshot.val()) {
            console.log(snapshot);
        }
    });
}

但我收到错误消息:

undefined 不是一个对象(评估 '_firebase.firebase.database')

我是不是做错了什么?

我已经使用下面的代码在我的 App.js 文件中初始化了 firebase。

export default class App extends React.Component {
    state = { loggedIn: null }

    componentWillMount() {
      firebase.initializeApp({
        apiKey: 'AIZaSyCBhrmSussrunKQCjXF3efalxnpUNXBpeI',
        authDomain: 'AppUrl.firebaseapp.com',
        databaseURL: 'https://AppUrl.firebaseio.com',
        projectId: 'AppUrl',
        storageBucket: 'AppUrl.appspot.com',
        messagingSenderId: '800845709365'
    });

【问题讨论】:

  • 你在你的应用中初始化了firebase吗?如果您有,请提供此代码
  • 是的,它在我家里的笔记本电脑上,所以我会在回来时更新问题以包含它。
  • @RyanTurnbull 抱歉,刚刚添加。
  • 您是否已将 firebase 导入您的子班?我建议通过 firebase 道具,然后通过 this.props.firebaseApp.database()... 访问它,这是他们建议做的事情
  • 嗯好的,谢谢你试试。我的子类是一个屏幕,因为我使用的是本机导航。这意味着我在 App.js 中创建了一个 firebase 道具,我将如何将它传递到屏幕?还是我在屏幕中创建道具?

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


【解决方案1】:

对于那些可能会遇到这种情况的人;当我引用错误的 ID 时,我遇到了同样的错误。如果您引用的是 firebase 数据库中数据的根目录,那么只需将引用留空即可。

firebase.database().ref()
.on('value', (snapshot) => {
  console.log(snapshot.val());
});

【讨论】:

    猜你喜欢
    • 2020-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多