BETA

firestore rules で admin 判定

投稿日:2018-12-27
最終更新:2018-12-27
const admin = require('firebase-admin')  
admin.initializeApp();  

exports.log = async (data)=>{  
    const docRef = admin.firestore().collection('logs').doc();  
    await docRef.set({timestamp: new Date, ...data});  
    return docRef;  
}  

みたいなのを書いた時に、 logs へのアクセスは admin だけにしたいんだけど、そのやり方がわからなくてえらい探した。

公式ドキュメント
https://firebase.google.com/docs/reference/rules/rules.firestore.Request?hl=ja#auth
にまったく記載がなく、たまたま見つけたサイト
https://www.fullstackfirebase.com/cloud-firestore/security-rules#basic-rules

allow read, write: if request.auth.token.admin  

っていうのがあったので試してみたら出来た。

どうやら CustomClaim という仕組みで、本来はこうやって自分でセットして参照するものらしいのだが、
https://qiita.com/tkow/items/45a17c61d8a45a33ac24
自分でセットしなくても require('firebase-admin') でアクセスしたやつには自動でついてる気配。

技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

@kuboonの技術ブログ

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
目次をみる
技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
or 外部アカウントではじめる
10秒で技術ブログが作れます!