尝试在 Expo managed 中使用 RTDB 时出错

Having error attempting to use RTDB in Expo managed

我正在尝试在我的应用程序上使用 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)

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

要在 v9 中获取数据库,您将 getDatabase() 作为 top-level 函数调用:

export const db = getDatabase();

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

上的文档