【问题标题】:Having error attempting to use RTDB in Expo managed尝试在 Expo 管理中使用 RTDB 时出错
【发布时间】:2022-01-30 01:08:29
【问题描述】:

我正在尝试在我的应用上使用 firebase 实时数据库。我首先进行身份验证,然后我需要使用 RTDB。这是我的尝试。

import { initializeApp } from 'firebase/app';
import 'firebase/auth';
import 'firebase/storage';
import { getDatabase } from "firebase/database";

import getEnvVars from '../environment';
const ENV = getEnvVars();

const firebaseConfig = {
  apiKey: ENV.firebase.API_KEY,
  authDomain: ENV.firebase.AUTH_DOMAIN,
  databaseURL: ENV.firebase.DATABASE_URL,
  projectId: ENV.firebase.PROJECT_ID,
  storageBucket: ENV.firebase.STORAGE_BUCKET,
  messagingSenderId: ENV.firebase.MESSAGING_SENDER_ID,
  appId: ENV.firebase.APP_ID
};



initializeApp(firebaseConfig);

export const db = getDatabase();

我得到的错误是:

TypeError: (0, _database.getDatabase) is not a function. (In '(0, _database.getDatabase)()', '(0, _database.getDatabase)' is undefined)

【问题讨论】:

    标签: javascript firebase firebase-realtime-database expo


    【解决方案1】:

    您将 SDK 版本 8 及更低版本的旧命名空间语法与 SDK 版本 9 及更高版本的新模块化语法混为一谈。

    要在 v9 中获取数据库,请调用 getDatabase() 作为顶级函数:

    export const db = getDatabase();
    

    我建议在阅读此内容时准备好 Firebase 文档,因为它包含旧语法和新语法的代码示例,因此您可以轻松进行比较。对于此特定调用,请参阅getting a database reference 上的文档。

    【讨论】:

    • 我应该注意到我也试过了......对不起。它说 database.getDatabase 未定义。 '(0,_database.getDatabase)' 未定义。知道我错过了什么吗?
    • 我建议使用一种应该有效的方法来更新您的问题,而不是您尝试的所有方法以及您得到的错误。尽管_database.getDatabase 的这条错误消息似乎表明您仍在调用getDatabase,而不是作为顶级函数。
    • 好的,非常感谢。我更新了问题。
    • 我想我发现我的错误我正在使用“firebase”:“7.9.0”
    • 在这种情况下,单击文档中的Web version 8 (namespaced) 选项卡以获取与您相关的代码示例。
    猜你喜欢
    • 2022-09-29
    • 1970-01-01
    • 2023-02-19
    • 2021-10-18
    • 1970-01-01
    • 2023-04-07
    • 2011-10-19
    • 2018-08-28
    • 1970-01-01
    相关资源
    最近更新 更多