Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

156
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda