Ошибка: НЕУСТРАНИМАЯ ОШИБКА FIREBASE: не удается проанализировать URL-адрес Firebase. Пожалуйста, используйте https://.firebaseio.com но URL-адрес базы данных не является firebaseio.com экспо

#firebase #react-native #firebase-realtime-database #expo #react-native-ios

#база огня #реагировать-родной #firebase-база данных в реальном времени #выставка #реагировать-родной-ios

Вопрос:

Я использую Expo SDK для своего приложения для ios, когда я пытаюсь записать данные в базу данных firebase, но я получаю сообщение об ошибке. Ошибка: НЕУСТРАНИМАЯ ОШИБКА FIREBASE: не удается проанализировать URL-адрес Firebase. Пожалуйста, используйте 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"
};

 

моя функция, которая хранит данные, такова

 
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");
     });
 };
 

Для моих правил базы данных установлено значение true для чтения и записи.

Я пробовал следующий URL-адрес базы данных, но ни один из них не работает.

 const firebaseConfig = {

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

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

 

Ищу помощи, пожалуйста

Комментарии:

1. Это действительно помогло бы точно увидеть, откуда исходит сообщение об ошибке. Но я бы рекомендовал явно передавать URL-адрес в инициализацию базы данных с помощью: firebase.database().ref("https://<DATABASE_NAME>.firebasedatabase.app") в качестве обходного пути в любом случае.

2. @FrankvanPuffelen Я пробовал это, это дает мне ту же ошибку

Ответ №1:

поджигатель здесь

Каким-то образом Expo, похоже, привязывает вас к Firebase SDK версии 7.9, которая была выпущена в феврале 2020 года. firebasedatabase.app Насколько я вижу, это предшествовало добавлению URL-адресов, которое произошло в мае 2020 года и было выпущено в версии 7.15.4 JavaScript SDK.

Проблема исчезает, когда я обновляю зависимость SDK до версии 7.14.5, несмотря на то, что редактор закусок Expo выдает ошибку, когда я это делаю:

 {
  "dependencies": {
    "react-native-paper": "3.6.0",
    "expo-constants": "~9.3.1",
    "firebase": "7.14.5"
  }
}
 

Моя рекомендация заключалась бы в обновлении до последних версий SDK, как показано в фрагментах конфигурации в консоли Firebase и документации.

Комментарии:

1. Я обновляю свою зависимость, и она по-прежнему выдает ту же ошибку. Мои зависимости таковы { "@expo/vector-icons": "^12.0.0", "expo": "~40.0.0", "expo-constants": "^9.3.5", "expo-firebase-recaptcha": "^1.3.0", "expo-font": "~8.4.0", "expo-linking": "~2.0.0", "expo-splash-screen": "~0.8.0", "expo-status-bar": "~1.0.3", "expo-web-browser": "~8.6.0", "firebase": "^7.14.5", "react": "16.13.1", "react-dom": "16.13.1", "react-native": "https://github.com/expo/react-native/archive/sdk-40.0.1.tar.gz" }

2. Это интересно, так как это работает для меня здесь: snack.expo.io/ij7acLi0V

3. да, это очень странно. Я использую последнюю зависимость SDK, и я не уверен, что не так. Я буду продолжать отлаживать его

4. Привет, @gangataarun. Добились ли вы здесь какого-либо прогресса? Учитывая, что я смог воспроизвести сообщение с версией Firebase SDK и смог исправить его, обновив до более новой версии, я совершенно убежден, что это должно быть связано с версией. Если вы еще не починили его, не могли бы вы воспроизвести его в качестве закуски на выставке, чтобы я мог взглянуть?

Ответ №2:

Обновление пакета Firebase до последней версии устраняет проблему

 "firebase": "^8.2.3"
 

Ответ №3:

Вы инициализировали конфигурацию? Что-то вроде этого.

 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;
 

Комментарии:

1. да, я инициализировал конфигурацию, которую я вызываю в своем app.js import * as firebase from "firebase"; import firebaseAppconfig from "./variables/firebase"; // PROVIDE VALID FIREBASE CONFIG HERE // https://firebase.google.com/docs/web/setup const FIREBASE_CONFIG: any = firebaseAppconfig; try { if (FIREBASE_CONFIG.apiKey) { firebase.initializeApp(FIREBASE_CONFIG); } } catch (err) { // ignore app already initialized error on snack }