Ich verwende next.js im Frontend und habe einen „api“-Ordner, der uns eine node.js-Umgebung auf der next.js-Serverseite bereitstellt.
Wir können eine Proxy-API zwischen Frontend und Backend haben (Cloud-Funktionen).
Ergebnis: CORS erhalten
Next.js API-Proxy-Code:
import { getFunctions, httpsCallable } from 'firebase/functions'; import { firebase } from '@/lib'; export async function deleteUserAccount(userId: string) { if (!userId) { console.error('deleteUserAccount: no userId provided'); return; } try { const functions = getFunctions(firebase, 'us-central1'); const deleteUserData = httpsCallable(functions, 'deleteUserData'); const { data }: any = await deleteUserData({ userId, }); console.log('deleteUserAccount', data); } catch (error) { console.error('deleteUserAccount error', error); } }
Dies ist die Cloud-Funktionsimplementierung:
const admin = require('firebase-admin'); const functions = require('firebase-functions'); exports.deleteUserData = functions.https.onRequest(async (req, res) => { const uid = request.auth.uid; try { await admin.auth().deleteUser(uid); return { message: 'Data deleted successfully!' }; } catch (error) { console.error('Error deleting user data', error); return Promise.reject(error); } });
Wie löst man CORS sicher?
Firebase 存储库在两个示例中解释了 cors 的使用。您的问题已在此处得到解答 只需确保您使用此格式即可