错误:FIREBASE 致命错误:无法解析 Firebase url。请使用 https://<YOUR FIREBASE>.firebaseio.com 但数据库 url 不是 firebaseio.com expo

gan*_*run 5 firebase react-native firebase-realtime-database react-native-ios expo

我正在为我的 ios 应用程序使用 Expo SDK,当我尝试在 firebase 数据库中写入数据但收到错误时。错误:FIREBASE 致命错误:无法解析 Firebase URL。请使用 https://.firebaseio.com *

我的 firebase 配置文件是

const firebaseConfig = {
  apiKey: "xxxxxx",
  authDomain: "xxxxxx.firebaseapp.com",
  databaseURL: "https://xxxxxxxxxxxxxx.europe-west1.firebasedatabase.app",
  projectId: "xxxxx",
  storageBucket: "xxxxxxx.appspot.com",
  messagingSenderId: "xxxxxxxxx",
  appId: "xxxxxxxxxx",
  measurementId: "xxxxxx"
};

Run Code Online (Sandbox Code Playgroud)

我存储数据的函数是


signUp = () => {
   const user = firebase.auth().currentUser;
   let userid = user.uid;

   firebase
     .database()
     .ref(`users/${userid}`)
     .set({
       firstname: this.state.firstname,
       lastname: this.state.lastname,
       password: this.state.password,
       email: this.state.email,
       dob: this.state.dob,
       postcode: this.state.postcode,
     })
     .then(() => {
       alert("user created");
     })
     .catch((err) => {
       alert("error");
     });
 };
Run Code Online (Sandbox Code Playgroud)

我的数据库规则设置为true以进行读取和写入。

我已经尝试过以下数据库 URL,但它们都不起作用。

const firebaseConfig = {

  databaseURL: "https://xxxxxxxxxxxxxx.europe-west1.firebaseio.com",
 
};
const firebaseConfig = {

  databaseURL: "https://xxxxxxxxxxxxxx.firebaseio.com",
 
};

Run Code Online (Sandbox Code Playgroud)

寻求帮助,请

Fra*_*len 6

火力战士在这里

不知何故,Expo 似乎将您锁定在 2020 年 2 月发布的 Firebase SDK版本 7.9上。据我所知,这早于 2020 年 5 月添加 URL 的时间,并在 JavaScript SDK 7.15.4firebasedatabase.app版本中发布。可以看到。

当我将 SDK 依赖项升级到 7.14.5 时,问题就消失了,尽管 Expo Snack 编辑器在我这样做时显示错误:

{
  "dependencies": {
    "react-native-paper": "3.6.0",
    "expo-constants": "~9.3.1",
    "firebase": "7.14.5"
  }
}
Run Code Online (Sandbox Code Playgroud)

我的建议是升级到最新版本的 SDK,如 Firebase 控制台和文档中的配置片段所示。


gan*_*run 5

将Firebase 包升级到最新版本修复了该问题

"firebase": "^8.2.3"
Run Code Online (Sandbox Code Playgroud)


小智 1

你初始化配置了吗?像这样的东西。

import firebase from 'firebase/app';
import 'firebase/firestore';
import 'firebase/database';
import 'firebase/auth';
import 'firebase/storage';
import 'firebase/functions';

interface ConfigProps {
    apiKey: string;
    authDomain: string;
    databaseURL: string;
    projectId: string;
    storageBucket: string;
    messagingSenderId: string;
    appId: string;
}

const config: ConfigProps = {
    apiKey: '******************',
    authDomain: '******************',
    databaseURL: '******************',
    projectId: '******************,
    storageBucket: '******************',
    messagingSenderId: '******************',
    appId: '******************',
};

firebase.initializeApp(config);
firebase.firestore();

export default firebase;
Run Code Online (Sandbox Code Playgroud)