Ошибка при настройке firebase с реакцией на возможное необработанное отклонение обещания - PullRequest
1 голос
/ 05 марта 2020

В настоящее время я создаю систему заказа продуктов питания и пытаюсь настроить firebase в собственном реактивном проекте

Приложение позволяет мне использовать аутентификацию из firebase, я могу успешно войти в систему, а также зарегистрировать новых пользователей, но он не позволяет мне использовать firestore. Я пытаюсь сделать консольный журнал в приведенном ниже коде, чтобы увидеть, будет ли firestore работать с приложением

. Ниже приведен список app.js / экрана, на котором я вызываю коллекцию из firestore

ошибка читается так:

firebase error // ошибка чтения на android эмуляторе

уровень приложения build.gradle и список

// пакетов, используемых для пакета реагирования

. json

"name": "projectFinal",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "android": "react-native run-android",
    "ios": "react-native run-ios",
    "start": "react-native start",
    "test": "jest",
    "lint": "eslint ."
  },
  "dependencies": {
    "@react-native-community/masked-view": "^0.1.7",
    "@react-native-firebase/app": "^6.3.4",
    "@react-native-firebase/auth": "^6.3.4",
    "@react-native-firebase/firestore": "^6.3.4",
    "firebase": "^7.9.3",
    "react": "16.9.0",
    "react-native": "0.60.5",
    "react-native-elements": "^1.2.7",
    "react-native-gesture-handler": "^1.6.0",
    "react-native-reanimated": "^1.7.0",
    "react-native-safe-area-context": "^0.7.3",
    "react-native-safe-area-view": "^1.0.0",
    "react-native-screens": "^2.2.0",
    "react-native-vector-icons": "^6.6.0",
    "react-navigation": "^4.2.2",
    "react-navigation-header-buttons": "^3.0.5",
    "react-navigation-stack": "^2.2.2",
    "react-navigation-tabs": "^2.8.2"
  },
  "devDependencies": {
    "@babel/core": "^7.8.6",
    "@babel/runtime": "^7.8.4",
    "@react-native-community/eslint-config": "^0.0.7",
    "babel-jest": "^25.1.0",
    "eslint": "^6.8.0",
    "jest": "^25.1.0",
    "metro-react-native-babel-preset": "^0.58.0",
    "react-test-renderer": "16.9.0"
  },
  "jest": {
    "preset": "react-native"
  }
}

app.js


import React, { Component } from 'react';
import { View, StyleSheet, Text } from 'react-native';

import {createAppContainer, createSwitchNavigator} from 'react-navigation';
import {createStackNavigator} from 'react-navigation-stack';
import {createBottomTabNavigator, createTabNavigator} from 'react-navigation-tabs'
import Icon from 'react-native-vector-icons/Ionicons'
import { HeaderButtons, HeaderButton, Item } from 'react-navigation-header-buttons';

import Home from './src/Screens/Home'
 //import MyAccount from './Screens/MyAccount';
 import Register from './src/Screens/Register'
 import Login from './src/Screens/Login';
 //import Menus from './Screens/Menus';
import LoadingScreen from './src/Screens/LoadingScreen';
// import Jitters from './Screens/Jitters';
// import Scullery from './Screens/Scullery';
// import Bunker from './Screens/TheBunker';
// import OrderDetails from './Screens/OrderDetails';
import ViewOrder from './src/Screens/ViewOrder';

import "firebase/firestore"
import firebase from "firebase"
import firestore from "@react-native-firebase/firestore"

//this is where firebase is initializedd the google.services json is also in the relevant file

const firebaseConfig = {
  apiKey: "AIzaSyCQQhhG3gDxzON9J__0yG-g3rOf41P18Ak",
  authDomain: "projectfinal-da8a1.firebaseapp.com",
  databaseURL: "https://projectfinal-da8a1.firebaseio.com",
  projectId: "projectfinal-da8a1",
  storageBucket: "projectfinal-da8a1.appspot.com",
  messagingSenderId: "880724335793",
  appId: "1:880724335793:web:7eb66a535f6899fc441690",
  measurementId: "G-TDTK7H32BN"
};

// Instantiate a Firebase app.
const firebaseApp = firebase.initializeApp(firebaseConfig);
const db = firebaseApp.firestore()



 const TabNavigator = createBottomTabNavigator(
         {
           Home: {
             screen: Home,
             navigationOptions: {
               TabBarIcon: ({ tintColor}) => <Ionicons name="ios-home" size={24} color={tintColor}/>
             }
          },
          // Menus: {
          //  screen: Menus,
          //   navigationOptions: {
          //     TabBarIcon: ({ tintColor}) => <Ionicons name="ios-chatbox" size={24} color={tintColor}/>
          //   }

           ViewOrder: {
           screen: ViewOrder,
           navigationOptions: {
            TabBarIcon: ({ tintColor}) => <Ionicons name="ios-add-circle" size={24} color={tintColor}/>
            },
         }
       },
       {
           tabBarOptions: {
             activeTintColor: "#161F3D",
             inactiveTintColor: "#E9446A",
             showLabel: true


           }

        }
       );



     const authStack = createStackNavigator(
       {
       Home: Home,
       Login: Login,
       Register: Register,
       // Menu: Menus,
      //  Jitters: Jitters,
      //  Scullery: Scullery,
      //  TheBunker: Bunker,
       // MyAccount: MyAccount,
      //  OrderDetails: OrderDetails,
       ViewOrder: ViewOrder
     });
    const App = createAppContainer(TabNavigator);
     export default createAppContainer(
      (
        createSwitchNavigator({

        Loading: LoadingScreen,
        App: TabNavigator,
        Auth: authStack
        },
        {
          initalRouteName: "Loading Page"
        }
      )
     )
     );

##Screen to call a collection of firestore##
//this is a console log to see if firestore will initialize 



import React, {useState} from 'react'
import {View, Text} from 'react-native'                                                                                                          
import firebase from "firebase"
import firestore from "@react-native-firebase/firestore"




async function myFunction() {

    var user = firebase.auth().currentUser;

    let x = await firestore().collection("Users").doc("MmjyeGlhFPu0g6pK0GQ2").get();

   // console.log(x)

}



export default class ViewOrder extends React.Component {

      componentDidMount() { 
        myFunction(
        ) 
         }

render() {
    return(
            <View>
                <Text>Hello</Text>
            </View>

    )}


**//error reads on android emulator**  

as possible unhandled promise rejection (id:0) 
error: no firebase app ['default] has been created - call
firebase.initalize.app() getapp@http://10.0.2.2.8081/index.bundle
?platform 

1 Ответ

0 голосов
/ 05 марта 2020

Кажется, по ошибке, в основном для этой части ниже:

Ошибка: не создано приложение Firebase '[DEFAULT]' - вызов firebase.initializeApp ()

То, что вы не инициализировали свою базу данных Firebase. Как сообщается в документации пожарная база. приложение. Приложение , вам нужно позвонить firebase.initializeApp(), чтобы создать приложение. Кроме того, я бы изменил ваш импорт на import * as firebase from "firebase", так что вы импортируете все пакеты, необходимые для Firebase.

Я проверил все приведенные ниже сообщения от сообщества, и эти возможные решения, которые я вам предоставил, просто некоторые варианты и альтернативы, которые могут решить вашу проблему.

Я бы порекомендовал вам взглянуть на них, чтобы вы могли получить больше информации и проверить дальше, так как могут быть другие конфигурации структуры и среды, которые могут повлиять на вас и эти случаи могут помочь вам в этом.

Дайте мне знать, помогла ли вам информация! * 1 035 *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...