Estoy usando una función de programación para eliminar usuarios no verificados. La función de programación se ejecuta cada 24 horas. Ahora el problema que tengo es: digamos que un usuario creó su cuenta hace 3 minutos y aún no verificó su dirección de correo electrónico. Y luego las funciones se ejecutan y eliminan su cuenta. Lo que quiero es darle al usuario digamos 5 horas para verificar su cuenta. Entonces mi pregunta es ¿cómo puedo verificar eso en mi función? Aquí está mi función
import * as functions from "firebase-functions"; import admin from "firebase-admin"; export default functions.pubsub.schedule('every 24 hours').onRun(async(context) => { console.log('This will be run every 24 hours!'); const users = [] const listAllUsers = (nextPageToken) => { // List batch of users, 1000 at a time. return admin.auth().listUsers(1000, nextPageToken).then((listUsersResult) => { listUsersResult.users.forEach((userRecord) => { users.push(userRecord) }); if (listUsersResult.pageToken) { // List next batch of users. listAllUsers(listUsersResult.pageToken); } }).catch((error) => { const functions = require("firebase-functions"); functions.logger.error("Hello from info. Here's an problem:", error); }); }; // Start listing users from the beginning, 1000 at a time. await listAllUsers(); const unVerifiedUsers = users.filter((user) => !user.emailVerified).map((user) => user.uid) //DELETING USERS return admin.auth().deleteUsers(unVerifiedUsers).then((deleteUsersResult) => { console.log(`Successfully deleted ${deleteUsersResult.successCount} users`); console.log(`Failed to delete ${deleteUsersResult.failureCount} users`); deleteUsersResult.errors.forEach((err) => { console.log(err.error.toJSON()); }); return true }).catch((error) => { const functions = require("firebase-functions"); functions.logger.error("Hello from info. Here's an problem:", error); return false }); });Si tiene alguna pregunta, hágamelo saber.
Eso no es posible con las API de autenticación de Firebase. Tendrá que registrar el tiempo por su cuenta en una base de datos separada y usar esa base de datos para averiguar el tiempo que necesita saber.