Hola, estoy haciendo un proyecto shcool en nodeJS y trabajo con firebase. Intento obtener el name de un users para no reescribir un valor existente. la base de datos es:
mi código para probar algo:
serv.js
const firebaseConfig = { apiKey: process.env.REACT_APP_API_KEY, authDomain: process.env.REACT_APP_AUTHDOMAIN, databaseURL: process.env.REACT_APP_DATABASEURL, projectId: process.env.REACT_APP_PROJECTID, storageBucket: process.env.REACT_APP_STORAGEBUCKET, messagingSenderId: process.env.REACT_APP_MESSASGINGSENDERID, appId: process.env.REACT_APP_APPID, measurementId: process.env.REACT_APP_MEASUREMENTID }; const {initializeApp} = require('firebase/app'); const {getDatabase} = require('firebase/database'); const {getAuth, signInWithEmailAndPassword, createUserWithEmailAndPassword} = require('firebase/auth'); const fireapp = initializeApp(firebaseConfig); const db = getDatabase(fireapp); var firebaseauth = getAuth(fireapp); [...] function create_entry_name(name, email) { const ref = db.ref('/users/' + name); ref.on('value', (snapshot) => { console.log(snapshot.val()); }, (errorObject) => { console.log('The read failed: ' + errorObject.name); }); }ese es literalmente el ejemplo en el sitio web de firebase.
Pero me sale un error que es:
db.ref is not a functionRealmente estaré muy agradecido si tiene una solución para este problema ...
Está usando Modular SDK ( v9.0.0+ ) pero usando una sintaxis de espacio de nombres más antigua. Intenta refactorizar el código de la siguiente manera:
import { getDatabase, ref, onValue} from "firebase/database"; function create_entry_name(name, email) { const ref = ref(db, '/users/' + name); onValue(ref, (snapshot) => { const data = snapshot.val(); console.log(data) }); }Puede encontrar más detalles sobre la nueva sintaxis en la documentación .
Llame a getDatabase directamente. Ya está inicializado.
const db = getDatabase(); const ref = db.ref('/users/'+ name);Compile la aplicación desde la biblioteca de aplicaciones...
import { firebaseApp } from 'firebase/app'; const app = initializeApp({/*config*/}); Luego obtenga la base de datos de la aplicación inicializada . Tenga en cuenta que el OP no puede pasar un parámetro a getDatabase ...
const db = getDatabase(app); const ref = db.ref('users/' + name); // etc...