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

160
Views
Llamar a la función Firebase en javascript

Tengo una función en la nube implementada en Firebase, y mis aplicaciones de iOS y Android la usan bien, todo funciona bien. A continuación se muestra la función desplegada.

 const admin = require('firebase-admin'); const firebase_tools = require('firebase-tools'); const functions = require('firebase-functions'); admin.initializeApp(); exports.deleteUser = functions .runWith({ timeoutSeconds: 540, memory: '2GB' }) .https.onCall((data, context) => { const userId = context.auth.uid; var promises = []; // DELETE DATA var paths = ['users/' + userId, 'messages/' + userId, 'chat/' + userId, 'like/' + userId]; paths.forEach((path) => { promises.push( recursiveDelete(path).then( () => { return 'success'; } ).catch( (error) => { console.log('Error deleting user data: ', error); }) ); }); // DELETE FILES const bucket = admin.storage().bucket(); var image_paths = ["avatar/" + userId, "avatar2/" + userId, "avatar3/" + userId]; image_paths.forEach((path) => { promises.push( bucket.file(path).delete().then( () => { return 'success'; } ).catch( (error) => { console.log('Error deleting user data: ', error); }) ); }); // DELETE USER promises.push( admin.auth().deleteUser(userId) .then( () => { console.log('Successfully deleted user'); return true; }) .catch((error) => { console.log('Error deleting user:', error); }) ); return Promise.all(promises).then(() => { return true; }).catch(er => { console.error('...', er); }); }); function recursiveDelete(path, context) { return firebase_tools.firestore .delete(path, { project: process.env.GCLOUD_PROJECT, recursive: true, yes: true, token: functions.config().fb.token }) .then(() => { return { path: path } }).catch( (error) => { console.log('error: ', error); return error; }); } // [END recursive_delete_function]

¿Cómo puedo ejecutar este script con un button en javascript? ¿Un archivo .js estándar localmente? También necesito poder pasar un ID de usuario manualmente.

En mi aplicación nativa de reacción, lo llamo así:

 const deleteUser = async () => { functions().httpsCallable('deleteUser')() signOut(); }

Pero en mi archivo javascript (nada que ver con mi aplicación nativa de reacción), necesito pasar un ID de usuario y llamar a esa misma función para eliminar al usuario.

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

0

Hay varias formas de ejecutar una función en la nube dentro de la aplicación del lado del cliente.

Dependiendo de cómo haya configurado la función, puede pasar un parámetro o datos a través del cuerpo de la solicitud.

Por ejemplo, usando express (similar a otros marcos):

 // fetch('api.com/user/foo', {method: 'DELETE'} ) app.delete('/user/:uid', (req, res) => { const uid = req.params.uid; // execute function }) // fetch('api.com/user', {method: 'DELETE', body: { uid: foo } } ) app.delete('/user', (req, res) => { const uid = req.body.uid; // execute function }) // fetch('api.com/user?uid=foo', {method: 'DELETE'} ) app.delete('/user', (req, res) => { const uid = req.query.uid; // execute function })

Ejemplo completo:

 <button onclick=“deleteUser(uid)”>Delete Me</button> <script> function deleteUser(uid) { fetch(`api.com/user/${uid}`, { method: 'DELETE'}); // rest of function } </script>
about 4 years ago · Juan Pablo Isaza Report

0

Pude llamar a mi función firebase con lo siguiente:

userId era accesible así const { userId } = data; de mi script de función

 async function deleteAccount(userId) { const deleteUser = firebase.functions().httpsCallable("deleteUser"); deleteUser({ userId }).then((result) => { console.log(result.data); }); }
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!