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') でアクセスしたやつには自動でついてる気配。

記事が少しでもいいなと思ったらクラップを送ってみよう!
0
+1
@kuboonの技術ブログ

よく一緒に読まれている記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
目次をみる

技術ブログをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

技術ブログを開設する

Qrunchでアウトプットをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

Markdownで書ける

ログ機能でアウトプットを加速

デザインのカスタマイズが可能

技術ブログ開設

ここから先はアカウント(ブログ)開設が必要です

英数字4文字以上
.qrunch.io
英数字6文字以上
ログインする