🎉

FirebaseのAuthenticationのメールアドレス確認の文章を変更する方法

2021/06/22に公開

できるようになること

メールアドレス確認のテンプレートを使用せず、文章を変更できるようになります

環境

  • Amazon Simple Email Service(Sendgridでも可)
  • FirebaseCloudFunctions

大まかな流れ

  1. createUserWithEmailAndPassword して、auth.userfirebase に作成する
  2. cloud functionsauth.user が作成された時に、メールアドレス確認リンクを作成する
  3. メール文章にリンクを載せて、メール配信サービスを使って送信する

コード

1. createUserWithEmailAndPassword して、auth.userfirebase に作成する

firebase.auth().createUserWithEmailAndPassword(email, password)
  .then((userCredential) => {
    // 成功時の処理
  })
  .catch((error) => {
    // 失敗時の処理
  });

2. cloud functionsauth.user が作成された時に、メールアドレス確認リンクを作成する

export const sendEmailVerification = async (user: admin.auth.UserRecord) => {
  if (!user.email) return;

  // リンク作成
  const link = await auth.generateEmailVerificationLink(user.email);
  await sendCustomVerificationEmail(user.email, link);
};

3. メール文章にリンクを載せて、メール配信サービスを使って送信する

const sendCustomVerificationEmail = async (email: string, link: string) => {
  return new AWS.SES()
    .sendTemplatedEmail({
      Destination: { ToAddresses: [email] },
      Source: source,
      Template: "templateVerifyEmail",
      // メールテンプレートにメールアドレス確認用のURLを渡す
      TemplateData: JSON.stringify({ confirmationLink: link })
    })
    .promise()
    .then((value: AWS.SES.SendTemplatedEmailResponse) => {
      // 成功時の処理
    })
    .catch((e: AWS.AWSError) => {
      // 失敗時の処理
    });
};

4. メールが届く

image.png

この記事に書いてあることができたら・・・

「Issue」のタスクをこなすことができます❗️
IssueではIssue単位で企業のお仕事ができるサービスです

Ex.

Firebaseでメールアドレス確認メール文章変更の実装
単価3,000円で受けて10時間ほどで実装した場合
3,000円 × 10時間 = 30,000円

登録は こちら から!
サービスページは こちら
企業様登録はこちら

Discussion