Ошибка: Firebase не настроен. Убедитесь, что вы правильно настроили google-services.json.

После запуска expo install expo-firebase-core expo-firebase-analyticsи скачиваю оба google-services.jsonа также GoogleService-Info.plistиз консоли firebase и поместить их в корень моего проекта.

Когда я вызываю Analytics.logEvent, expo go выдает ошибку.

      Possible Unhandled Promise Rejection (id: 0):
Error: Firebase is not configured. Ensure that you have configured 'google-services.json' correctly.

это мой TopLevelComponent.js:

      import React from 'react'
import * as Analytics from 'expo-firebase-analytics';
import { createRootNavigator } from './router'

const RootNavigator = createRootNavigator()

const TopLevelComponent = props => {
    const { screenProps } = props;
    const { checkLogin } = screenProps;
    const getActiveRouteName = navigationState => {
        if (!navigationState) {
            return null
        }
        const route = navigationState.routes[navigationState.index]
        // Parse the nested navigators
        if (route.routes) return getActiveRouteName(route)
        return route.routeName
    }

    return (
        <RootNavigator
            onNavigationStateChange={async (prevState, currentState) => {
                const currentScreen = getActiveRouteName(currentState)
                const prevScreen = getActiveRouteName(prevState)
                if (prevScreen !== currentScreen) {
                    checkLogin()
                    Analytics.logEvent('event')
                }
            }}
            screenProps={props.screenProps}
        />
    );
}

export default TopLevelComponent

Я пропустил какую-либо другую конфигурацию?

Есть ли другой способ настроить firebase-analytics, кроме этих файлов?

я использую expo-44.0.6а также expo-firebase-analytics-6.0.1

3 ответа

У меня была такая же ошибка. Вот как я это исправил:

  1. Перейдите в app.js и добавьте

"googleServicesFile": "./GoogleService-Info.plist"

в разделе «iOS». пример:

        "expo": {
    "name": "",
    "slug": "",
    "version": "",
    "orientation": "",
    "icon": "",
    "splash": {
      "image": "",
      "resizeMode": "",
      "backgroundColor": ""
    },
    "updates": {
      "fallbackToCacheTimeout":
    },
    "assetBundlePatterns": [
      "**/*"
    ],
    "ios": {
      "supportsTablet":,
      "bundleIdentifier": "",
      "googleServicesFile": "./GoogleService-Info.plist"
    },
  1. Аналогично для Android:

            "android": {
           "googleServicesFile": "./google-services.json",
           "adaptiveIcon": {
             "foregroundImage": "",
             "backgroundColor": ""
           }
    
  2. Добавьте это для раздела «Интернет»:

             "web": {
           "config": {
             "firebase": {
               "apiKey": "",
               "authDomain": "",
               "projectId": "",
               "storageBucket": "",
               "messagingSenderId": "",
               "appId": "",
               "measurementId": "G-**********"
             }
           },
           "favicon": "./assets/favicon.png"
         }
    
  3. Затем в приложении:

             import * as Analytics from 'expo-firebase-analytics';
    

    const pageView = async (routeName, params) => { await Analytics.logEvent(routeName, params); };

У меня была такая же ошибка. В моем случае я использовал рабочий процесс Expo Bare с SDK 45.

Я добавляю эту строку только в свой android/build.gradle

       dependencies {
    classpath("com.android.tools.build:gradle:4.1.0")
    classpath 'com.google.gms:google-services:4.3.10' /* Add this line */
}

И в android/app/build.gradle в верхнем файле

      apply plugin: "com.android.application"
apply plugin: 'com.google.gms.google-services' /* Add this line */

Очистите проект и запустите: production npx react-native run-android

Это работает для меня :)

У меня возникла аналогичная проблема с подключением к аналитике в Firebase. У меня были все упомянутые выше конфигурации для веба и ios. Я хотел настроить аналитику для своего выставочного приложения и использовать толькоexpo-firebase-analyticsбиблиотека. Я тестировал соединение с симулятором ios.

Моя проблема была просто решена путем добавления второго приложения в мою Firebase для платформы ios. GoogleService-Info.plistфайл был автоматически сгенерирован в Firebase и доступен для загрузки и размещения в моем проекте.

Изначально я добавил приложение в свою Firebase только для веб-платформы, поэтому мне не удалось установить соединение между симулятором ios и аналитикой в ​​Firebase.

Другие вопросы по тегам