如何在模拟器套件中运行firebase阻塞功能(beforeUserCreated)?

问题描述 投票:0回答:1

在网上搜索了多个小时并询问 ChatGPT 后,我没有找到解决方案。

我有一个 Firebase 项目(Web 应用程序),并且正在使用 Gen2 Javascript Node 来实现 Firebase 函数。我已在我的项目中使用 Identity Platform 启用 Firebase Auth。

我目前只使用模拟器。

我遇到的问题是 beforeUserCreated 事件(阻塞函数)没有在我的模拟器中被调用。

所有其他功能都完美运行。用户被创建(由于阻止功能而不应创建)并且日志中没有错误。

我的index.js 文件如下所示:


import {
    beforeUserCreated,
    beforeUserSignedIn,
  } from "firebase-functions/v2/identity";

export const helloworld = v2.https.onRequest((request, response) => {
    response.send("Hello from Firebase!");
});


export const beforeusercreated = beforeUserCreated({ region: 'europe-west1' }, (event) => {
    const user = event.data;
  // Only users of a specific domain can sign up.
    if (!user.email || !user.email.endsWith("@example.com")) {
        throw new HttpsError("invalid-argument", "Unauthorized email");
    }
  });```


I also get this in the function logs in the emulator:
```✔  functions[us-central1-beforeusercreated]: providers/cloud.auth/eventTypes/user.beforeCreate function initialized (http://127.0.0.1:5101/univus-9457e/us-central1/beforeusercreated).```

Can someone please help me out here. Has anyone found a solution to this?



I've tried changing the function names, nothing changes. There are no errors, no documentation anywhere! 
firebase google-cloud-platform firebase-authentication google-cloud-functions firebase-tools
1个回答
0
投票

我遇到了同样的问题,并在第二代页面的身份验证触发器的相同指南中找到了此问题:Firebase 身份验证触发器。 它指出“注意:Cloud Functions for Firebase(第二代)不提供对本指南中描述的事件和触发器的支持。由于第一代和第二代函数可以在同一源文件中并存,因此您仍然可以与第二代功能一起开发和部署此功能。”。这意味着第二代 Firebase 不支持指南中描述的这些身份验证事件和触发器。

© www.soinside.com 2019 - 2024. All rights reserved.