Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

276
Views
¿Cómo escribir Firebase Realtime Database en Firestore automáticamente?

Actualmente estoy haciendo un proyecto que usa Arduino para recopilar datos y almacenarlos en la nube y mostrar los datos en la nube en la aplicación móvil. Por lo que he intentado, Arduino solo puede cargar datos en la base de datos en tiempo real de Firebase, pero mi aplicación móvil Flutter necesita que los datos se almacenen en Firestore. ¿Hay alguna forma de escribir datos de la base de datos en tiempo real de firebase en Firestore automáticamente cuando hay cambios en la base de datos en tiempo real?

Esta es la estructura de la base de datos en tiempo real : estructura de la base de datos en tiempo real

y me gustaría agregar los datos en el campo respectivo en Firestore de esta manera: estructura de firestore

He intentado leer los datos cada 5 segundos y escribirlos en Firebase pero no parece muy eficiente:

 final userDbRef = FirebaseDatabase.instance.ref("user/"); String uid = globals.uid; Stream<DatabaseEvent> stream = userDbRef.onValue; // Subscribe to the stream! var subscription = stream.listen((DatabaseEvent event) { // print('Listening'); dynamic values = event.snapshot.value; final data = new Map<String, dynamic>.from(values); globals.temp = data['temp']; globals.hr = data ['hr']; globals.spo2 = data['spo2']; globals.position = data['position']; globals.time = DateTime.parse(data['time']); }); subscription.pause(); String date = DateTime.now().add(const Duration(hours: 8)).toString().substring(0, 10); dynamic result = await DatabaseService(uid: uid).getUserData('patient'); if (result[date].toString() == 'null') { await DatabaseService(uid: uid).updateSingleUserData('patient', { date: { 'time': ['${date} 00:00:00.000'], 'hr': [95], 'temp': [36.5], 'spo2': [98], 'position': ['lying'], }, }); } else { List timeList = result[date]['time']; List hrList = result[date]['hr']; List tempList = result[date]['temp']; List spo2List = result[date]['spo2']; List positionList = result[date]['position']; if ((!timeList.contains(globals.time.toString())) & (globals.time.toString() != 'null')) { timeList.add(globals.time.toString()); hrList.add(globals.hr); tempList.add(globals.temp); spo2List.add(globals.spo2); positionList.add(globals.position); await DatabaseService(uid:uid).updateSingleUserData('patient', { date: { 'time': timeList, 'hr': hrList, 'temp': tempList, 'spo2': spo2List, 'position': positionList, }, }); } } subscription.resume();

Gracias.

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

¿Hay alguna forma de escribir datos de la base de datos en tiempo real de firebase en Firestore automáticamente cuando hay cambios en la base de datos en tiempo real?

Sí, un enfoque común es usar una función en la nube que se activa automáticamente cada vez que se agrega un nuevo nodo a la base de datos en tiempo real . La función de la nube se ejecuta en el back-end, es decir, en la infraestructura de Firebase/Google Cloud y, por lo tanto, no necesita escribir ningún código en su aplicación Flutter para esta duplicación/transferencia de datos.

Aquí hay un ejemplo simple con rutas genéricas:

 // The Cloud Functions for Firebase SDK to create Cloud Functions and set up triggers. const functions = require('firebase-functions'); // The Firebase Admin SDK to access Firestore. const admin = require('firebase-admin'); admin.initializeApp(); exports.duplicateToFirestore = functions.database.ref('/myRTDBPath/{pushId}') .onCreate((snapshot, context) => { // Grab the current value of what was written to the Realtime Database. const nodeVal = snapshot.val(); // Write it to a Firestore collection return admin.firestore().collection('myFirestoreCollection').add(nodeVal); });

Te dejo hacer el trabajo de transformación del valor del nodo RTDB a la estructura del documento de Firestore que estás buscando.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!