今更ゾンビランドサガを見始めて宮野節を堪能してます。
yagish履歴書でユーザー側でのアカウント削除を実装するにあたり、退会率などをみるため、せめてログには残したいと思った。
おかげさまで退会率は1%以下で使用するユーザーはかなり限られるため最低限の実装を予定。
自分でアカウントを削除させる処理
削除は下記公式どおり、ユーザーオブジェクトのdelete()を実行するだけ。
だけどログインしてから一定(詳細は不明)時間経つとエラーになるので、一度ログアウトし、再度ログインをしてもらう必要があった。
実行するまで切れてるか分からないので、エラーが出たら再ログインを求める案内文言でカバー。
var user = firebase.auth().currentUser;
user.delete().then(function() {
// User deleted.
}).catch(function(error) {
// An error happened.
});https://firebase.google.com/docs/auth/web/manage-users?hl=ja#delete_a_user
Functions側
とりあえずログに出すだけ。
user(UserRecord)を受け取れるのでそれを使っていろいろできる。
exports.loggingUserCreate = functions
.auth
.user()
.onCreate(user => {
const data = JSON.stringify(user.toJSON())
console.log(`account created ${data}`)
return true
})userが持っている情報は下記ドキュメント
Interface: UserRecord | Firebase
最後のreturnは
Function returned undefined, expected Promise or value
というエラーが出るのでつけているが値に特に意味はなさそう。
ログであればemail, uidなど指定で出したほうがいいけど、とりあえずtoJSONで全部出して試してた段階。
登録、退会時に通知メールを送るにはSendGridなどを使う必要がありそう。
社内向けなら以前書いたようなHangOutsチャット連携もありかもしれない。
あとはuidを元にfirestoreに保存してあるデータを削除するのがよくやりそうだけど、yagishの場合はユーザー側に機能があるのでそちらで明示的にやってもらうことを考えている。

改訂新版 Vue.jsとFirebaseで作るミニWebサービス (技術書典シリーズ(NextPublishing))
- 作者: 渡邊達明
- 出版社/メーカー: インプレスR&D
- 発売日: 2018/10/05
- メディア: Kindle版
- この商品を含むブログを見る