我在前端使用next.js,有一个“api”文件夹,为我们在next.js服务器端提供了一个node.js环境。
我们可以在前端和后端(云函数)之间拥有一些代理“api”。
结果:得到 CORS
Next.js api代理代码:
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); } }
这是云函数实现:
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); } });
如何安全地解决CORS?
P粉5233350262024-03-30 09:43:56
Firebase 存储库在两个示例中解释了 cors 的使用。您的问题已在此处得到解答 只需确保您使用此格式即可
{ origin:"https://your-site.name" }