【はじめてのFirebase】第6話:届けGmail! ~ ベッサム神との出会い ~
おはこんばんちはaomaです。
記念日を通知する『KINENBI』というサービスを作ってます!
— aoma23 (@aoma23) 2021年1月22日
当日だけでなく○ヶ月記念日や777日記念日といったキリ番にも対応しています!
現在事前登録受付中です!よろしくお願いします!#KINENBI#拡散希望 https://t.co/0deleLPFQA
この物語はそんなaomaがはじめてのFirebaseに挑む壮大なアクションアドベンチャーである!第6話!
第6話の内容
- 本番では送信できていなかったメールを送れるようになる(NodeMailerとGmailの設定見直し)
- エミュレーターのテストデータ保持
- firebaseUIのメールリンク認証追加
- firebaseUIの日本語化
まえがき
GmailとNodemailerを使ってみるか。https://t.co/4T9OWyQCfK
— aoma23 (@aoma23) 2021年1月19日
gmailの設定変更して
— aoma23 (@aoma23) 2021年1月19日
安全性の低いアプリの許可: 有効
にしてあげる必要があった!https://t.co/EaAqMnEaCE
メール送信できたー!
— aoma23 (@aoma23) 2021年1月19日
よし。デプロイも完了!
— aoma23 (@aoma23) 2021年1月20日
あとは明日実行されてればOKだ。
本編
おいおいメール送られてないじゃん。。。
— aoma23 (@aoma23) 2021年1月21日
Error: Invalid login: 534-5.7.14
— aoma23 (@aoma23) 2021年1月21日
このエラーですね。gmailにログインできない。
onRequestにしてもダメ。定期実行が問題ではなく、本番環境でのみ発生する。
— aoma23 (@aoma23) 2021年1月21日
まさにこのstackoverflowと同じ。https://t.co/eMoefg2uGA
ベッサムさんは安全性を低くしなくても解決できるといってる。良さそう。
— aoma23 (@aoma23) 2021年1月21日
そもそも低にしててもエラーになってるしな。https://t.co/eKUnNfuVSx
結構ハマってる人いるんだな。ローカルではうまく行くけど本番はダメ。https://t.co/LVe2VSMNvv
— aoma23 (@aoma23) 2021年1月21日
よし!俺はベッサムさんについていくぜ!!
— aoma23 (@aoma23) 2021年1月21日
OK!順調に進めてるぞ。 pic.twitter.com/8wVRDQSnXB
— aoma23 (@aoma23) 2021年1月21日
もうベッサムさんに言われるがままにやってる。何をしてるかはわかってない。 pic.twitter.com/ApetLt8ccQ
— aoma23 (@aoma23) 2021年1月21日
ベッサムさんを信じて無効に戻した。
— aoma23 (@aoma23) 2021年1月21日
もはやベッサム神である。 pic.twitter.com/LyNSBnan2g
エミュレーターでメール飛ぶこと確認できたー!
— aoma23 (@aoma23) 2021年1月21日
ベッサムコードのポイントとしては、AccessTokenは定義不要だったこと(リフレッシュトークンあるので)と user: 'mail@gmail.com',は自分のアドレスに書き換える必要ある。 pic.twitter.com/TXDyqcQFHb
パスワードの定義は不要になったので削除!
— aoma23 (@aoma23) 2021年1月21日
firebase functions:config:unset gmail.password
ベッサム神のおかげで本番でもメール送信できたーーー!!!😂😂😂
— aoma23 (@aoma23) 2021年1月21日
ありがとうベッサム神!
(もしものときのために手順をキャプチャしとく) pic.twitter.com/IWSbLIddkq
@SahliBessam Thanks for your blog.
— aoma23 (@aoma23) 2021年1月21日
You are great!https://t.co/eKUnNfuVSx
うれしさのあまりベッサム神をフォロー&DMしてしまった。
— aoma23 (@aoma23) 2021年1月21日
firebaseのエミュレーター、毎度データ消えちゃうのやだな。何か方法あるのかな。。
— aoma23 (@aoma23) 2021年1月21日
Thank you for your support!
— aoma23 (@aoma23) 2021年1月21日
ありがとうございます!!!
なるほどエクスポートとインポートすればいいのか!
firebase emulators:start --import=./dir --export-on-exit
— aoma23 (@aoma23) 2021年1月21日
でエミュレーター起動すれば終了時にテストデータ保存されて、実行時にインポートしてくれると。素晴らしい!
今日は助けられてばかり。ありがたやありがたや。
メールリンク認証も追加しちゃうぞ
— aoma23 (@aoma23) 2021年1月21日
メールリンク認証終わった。終わってしまった。。
— aoma23 (@aoma23) 2021年1月21日
下記追加しただけでいけた。firebaseUIすごすぎる。
signInOptions: [
{
provider: firebase.auth.EmailAuthProvider.PROVIDER_ID,
signInMethod: https://t.co/1Tde42X0wG_LINK_SIGN_IN_METHOD
}
firebaseUIのサインインウィンドウを日本語化したいなー。
— aoma23 (@aoma23) 2021年1月21日
[https://twitter.com/aoma23/status/1352163973903183874:embed#日本語対応できたー!{LANGUAGE_CODE}をjaにするだけ!かんたん。<link ty… https://t.co/QbF4kibUL4]
ログインメールのアプリ名が「project〜」になっちゃってる。
— aoma23 (@aoma23) 2021年1月21日
これどこで設定するんだ? pic.twitter.com/MluPxzXzxQ
firebaseの設定のとこに公開名ってあったー!
— aoma23 (@aoma23) 2021年1月21日
これを変えればよさげ。 pic.twitter.com/xZky2mxbZP
1ユーザーが登録できるfirestoreのドキュメント数を上限3件までとかにセキュリティルールで制御したかったんだけど、思いのほか面倒だったので諦めて寝ます!
— aoma23 (@aoma23) 2021年1月21日
おつかれさまでした!https://t.co/PC1tT2VfbP
To Be Continued...