首页 > 解决方案 > 如何处理动态链接网址?

问题描述

我有一个表格来注册用户,工作得很好,使用 firebase.auth().createUserWithEmailAndPassword。

但我想发送一个验证链接,Firebase 帮助显示我必须使用actionCodeSettings.

但是文档远没有帮助。

各位大侠能帮我提点建议吗?

var actionCodeSettings = {
   url: 'https://newagent-48d6b.firebaseapp.com/__/?email=' + firebase.auth().emailUser,
   iOS: {
      bundleId: 'com.example.ios'
   },
   android: {
      packageName: 'com.example.android',
      installApp: true,
      minimumVersion: '12'
   },
   handleCodeInApp: true,
      dynamicLinkDomain: "example.page.link"
   };

firebase.auth().sendSignInLinkToEmail(emailUser, actionCodeSettings)
   .then(function() {
      window.localStorage.setItem('emailForSignIn', emailUser);
      console.log("rocks")
    })
   .catch(function(error) {
      var errorCode = error.code;
      var errorMessage = error.message;
      console.log(errorCode + errorMessage);
   });

控制台日志:auth/invalid-dynamic-link-domain 提供的动态链接域没有为当前项目配置或授权。

提前很多!

标签: javascriptfirebasefirebase-authentication

解决方案


这意味着您使用的动态链接的域未授权,您可以从Firebase 控制台授权域- 身份验证 -> 登录方法

bundleId: 'com.example.ios'
packageName: 'com.example.android',
dynamicLinkDomain: "example.page.link"

这只是一个示例数据,您仍然需要在此处填写您的实际应用设置,这auth/invalid-dynamic-link-domain意味着您可能已经离开dynamicLinkDomain: "example.page.link"了它的方式

  1. dynamicLinkDomain不是必填字段,因此您可以将其删除
  2. 您仍然需要从Firebase 控制台启用动态链接。这将创建一个默认域,它应该被自动列入白名单
  3. 您仍然需要将您在url. *.firebaseapp.com应该已经为您列入白名单。要允许域从 Firebase 控制台转到身份验证页面

为了能够处理 app ( handleCodeInApp: true) 中的代码,还有额外的项目特定配置


推荐阅读