Flutter + Firebase:如何发送电子邮件验证

时间:2020-08-24 00:03:05

标签: firebase flutter dart firebase-authentication

我试图在线阅读,但是找不到如何使用sendSignInLinkToEmail()

的答案

我特别对什么是actionCodeSettings及其应具有的值感兴趣。提前输入。

Future verificationEmail(email) async {
  try { 
     FirebaseAuth.instance.sendSignInLinkToEmail(
                                      email: email,
                                      actionCodeSettings: null
      } catch (err) { 
          print(err);
            }
}
                               

3 个答案:

答案 0 :(得分:2)

[已弃用](是的,已经...)

FirebaseAuth.instance.sendSignInLinkToEmail(
      email: "example@example.com",
      actionCodeSettings: ActionCodeSettings(
        url: "https://example.web.app",
        android: {
          'packageName': "com.example.example",
          'installApp': true,
          'minimumVersion': '12'
        },
        iOS: {
          'bundleId': "com.example.example",
        },
        handleCodeInApp: true,
      ),
    );

[新格式]

_firebaseAuthInstance.sendSignInLinkToEmail(
    email: "rocky_balboa@example.com,
    actionCodeSettings: ActionCodeSettings(
        url: "https://example.page.link/cYk9",
        androidPackageName: "com.example.app",
        iOSBundleId: "com.example.app",
        handleCodeInApp: true,
        androidMinimumVersion: "16",
        androidInstallApp: true),
  );

答案 1 :(得分:1)

在全新的Flutter/Firebase documentation中,电子邮件链接登录似乎尚未得到充分的记录。

在这种情况下,我建议您查看适用于Android的等效Firebase文档。在这种情况下,sending an authentication link to the user's email address上的文档似乎已满足您的需求。您需要创建一个ActionCodeSettings object并将其传递给对sendSignInLinkToEmail的调用。

答案 2 :(得分:0)

这是当您使用电子邮件和密码创建新用户时发送电子邮件验证的方式

UserCredential _user = await FirebaseAuth.instance.signInWithEmailAndPassword(
    email: 'abc@gmail.com',
    password: 'password',
);

_user.user.sendEmailVerification(); // link sent on above mentioned email

这是您如何检查电子邮件是否已验证

bool isVerified = _user.user.emailVerified;  // true; if verified