firebase functionsでuserが登録されたらuserにsendgridからメールを送る関数を作った
2024年12月07日 13:25
こんにちは、あなたはfirebase functionsというものをご存知ですか?最近、私はfirebaseを使ってアプリを開発しているのですが、その中でfunctionsというものを知りました。functionsとは、firebaseの機能の一つで、サーバーレスのバックエンド機能を提供してくれるものです。今回は、このfunctionsを使って、ユーザーが登録されたら自動的にメールを送るという機能を作成することに挑戦してみました。
まず、firebaseというものを知らない人のために簡単に説明します。firebaseはGoogleが提供するモバイルアプリ開発のためのプラットフォームです。バックエンドの機能だけでなく、認証やストレージ、アナリティクスなど、様々な機能を提供しています。また、無料プランもあるので、初めて利用する人にとっても手軽に試すことができます。
さて、今回私が挑戦したのはfunctionsというものです。functionsは、サーバーレスのバックエンド機能を提供してくれるものです。つまり、自分でサーバーを用意する必要がなく、firebaseが自動的に処理してくれることができます。例えば、データベースにデータが追加されたら、自動的にメールを送るというような処理を行うことができます。
さて、実際にfunctionsを使ってユーザー登録とメール送信の機能を作成してみましょう。まずは、functionsを有効にするために、ターミナルで以下のコマンドを実行します。
すると、functions用のディレクトリが作成され、必要なファイルがダウンロードされます。次に、functionsディレクトリ内にあるindex.jsファイルに以下のコードを追加します。
上記のコードでは、functions.auth.user().onCreate()という関数を使って、ユーザーが登録されたら自動的にメールを送るように設定しています。また、sendgridというサービスを使用してメールを送信するようにしています。sendgridは、メール送信に特化したサービスで、firebaseからも利用することができます。
さて、上記のコードには「送信元のメールアドレス」という箇所がありますが、ここには実際にメールを送るためのメールアドレスを入力する必要があります。また、htmlの部分にはメールの内容を自由に設定することができます。今回は簡単に「ご登録ありがとうございます」というメッセージを表示するようにしてみました。
さて、コードが完成したら、実際に動作確認をしてみましょう。まず、functionsディレクトリ内で以下のコマンドを実行して、functionsをローカルで実行します。
すると、functionsがローカルで実行されるので、ユーザーを登録することでメールが送信されるかどうか確認することができます。もし、エラーが出てメールが送信されない場合は、sendgridの設定やメールアドレスなどを確認してみてください。
動作確認が終わったら、いよいよfunctionsをfirebaseにデプロイしましょう。functionsディレクトリ内で以下のコマンドを実行します。
すると、functionsがfirebaseにデプロイされ、実際にユーザーが登録されたら自動的にメールが送信されるようになります。
今回は、firebase functionsを使ってユーザーが登録されたら自動的にメールを送る機能を作成してみました。functionsを使うことで、簡単にバックエンドの機能を実装することができるので、今後も様々なアプリ開発に活用していきたいと思います。また、今回のようにsendgridを使うことで、さまざまな処理を行うことができるので、ぜひ活用してみてください。
診断を受けるとあなたの現在の業務委託単価を算出します。今後副業やフリーランスで単価を交渉する際の参考になります。また次の単価レンジに到達するためのヒントも確認できます。