Recibo este error cuando intenté obtener datos de la base de datos en tiempo real de Firebase:
AboutApp.js:9 TypeError no detectado: config__WEBPACK_IMPORTED_MODULE_9 _.firebase.database no es una función en AboutApp.js:9:1
¿Hay algo mal en mi código?
Por favor, compruebe la estructura de la base de datos.
import React, { useState, useEffect } from 'react'; import {View, Button, Text, FlatList, StyleSheet, Pressable, TouchableOpacity} from 'react-native' import {firebase} from '../config'; const AboutApp = ({ navigation }) =>{ const [users, setUsers] = useState([]); useEffect(() => { const users = firebase.database().ref("first"); users.on("value",datasnap=>{ console.log(datasnap.val()); }); setUsers(users) }, []) return ( <View style={{ flex:1, marginTop: 100}}> <FlatList style={{height: '100%'}} data={users} numColumns={1} renderItem={({item}) => ( <Pressable style={styles.container}> <View style={styles.innerContainer}> <Text>{item.name}</Text> <Text>{item.email}</Text> <Text>{item.phone}</Text> </View> </Pressable> )} /> </View> ); } export default AboutApp;Por favor revise el archivo de configuración-
import firebase from 'firebase/compat/app'; import 'firebase/compat/auth'; import 'firebase/compat/firestore' const firebaseConfig = { apiKey: "AIzaSyBS93aTCkwMyEWU15HR5y454qZM_WTDXhAo", authDomain: "newawesome-18ee9.firebaseapp.com", projectId: "newawesome-18ee9", storageBucket: "newawesome-18ee9.appspot.com", messagingSenderId: "441185679151", appId: "1:441187374121:web:ecf6de832274a4480b8610", measurementId: "G-R6NM36814P" }; if (!firebase.apps.length){ firebase.initializeApp(firebaseConfig) } export {firebase};Parece que está intentando usar Firebase Realtime Database y no Firestore . No está importando el SDK de RTDB. Intente agregar la siguiente importación:
import firebase from 'firebase/compat/app'; import 'firebase/compat/auth'; import 'firebase/compat/firestore' import 'firebase/compat/database' // <-- Import RTDB SDKAdemás, Firebase eliminará el SDK "compatible" en futuras actualizaciones, por lo que será mejor actualizar su código al nuevo Modular SDK. Consulte la documentación para obtener más información.