sendSignInLinkToEmail函数是否适用于firebase模拟器?

sendSignInLinkToEmail 函数是否适用于 firebase 模拟器?我尝试了以下代码。Firebase 托管会发送电子邮件,但 Firebase 模拟器不会。(创建和登录正在使用模拟器。)如果有人知道,请告诉我。

"firebase": "^8.1.1"

“码头工人”:“v19.03.13”

“节点(在 docker 中)”:“14-alpine”

“vue(在 docker 中)”:“^2.6.11”

sourceCode firebase.js(初始化)

import fbapp from "firebase/app"
import "firebase/auth"
const config = {
 apiKey: process.env.VUE_APP_FIB_API_KEY,
 authDomain: process.env.VUE_APP_FIB_AUTHDOMAIN,
 databaseURL: process.env.VUE_APP_FIB_FIRESTORE_URL,
 projectId: process.env.VUE_APP_FIB_PROJECT_ID,
 storageBucket: process.env.VUE_APP_FIB_STRG_BUCKET,
 messagingSenderId: process.env.VUE_APP_FIB_MSG_ID,
 corsConfiguration: [{ maxAgeSeconds: 3600 }],
 measurementId: process.env.VUE_APP_FIB_MEASUREMENT_ID,
 appId: process.env.VUE_APP_FIB_APP_ID
 }
const firebase = fbapp.initializeApp(config);

export default {
  initAuth() {
    firebase.auth().useEmulator('http://localhost:9099/')
  return auth;
}

源代码 authMail.vue

 import Firebase from '@/firebase';
 const fb_auth = Firebase.initAuth();
 // ~~ ~~ //
 methods: {
 async sendAuthMail(email){
  const actionCodeSettings = {
    url: process.env.VUE_APP_URL + '/signup/authorize' + redirect_param,
    handleCodeInApp: true
  }

  fb_auth.sendSignInLinkToEmail(email, actionCodeSettings)
    .then(function() {
      window.localStorage.setItem('emailForSignIn', email);
      return true
  })
  .catch(function(error) {
      return error
  });

},

回答

正如有关模拟电子邮件、电子邮件链接和匿名身份验证的文档所说:

为了使用电子邮件链接流测试电子邮件验证/登录,模拟器会打印一个指向执行 firebase emulators:start 的终端的 URL。

i 要验证电子邮件地址 customer@ex.com,请点击以下链接:
http://localhost:9099/emulator/action?mode=verifyEmail&lang=en&oobCode=XYZ123&apiKey=fake-api-key

将链接粘贴到浏览器中以模拟验证事件,并检查验证是否成功。

{
  "authEmulator": {
    "success": "The email has been successfully verified.",
    "email": "customer@example.com"
  }
}

所以模拟器不发送邮件,你需要检查模拟器的控制台输出中是否有链接来验证并登录。


以上是sendSignInLinkToEmail函数是否适用于firebase模拟器?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>