Skip to content

Instantly share code, notes, and snippets.

@pfiadDi
pfiadDi / gist:22e3e39b305e42b79e75493ec7abe85c
Created June 17, 2021 06:54
Firestore restrict to certain users
function getAllowedUser() {
return get(/databases/$(database)/documents/settings/allowedUsers)
}
function validUser() {
let allowedUsers = getAllowedUser();
return request.auth.token.email in allowedUsers.data.emails
||
request.auth.token.email.split("@")[1] in allowedUsers.data.domains
}
@pfiadDi
pfiadDi / firestore.rules
Created August 4, 2021 17:08
Firestore Advanced Security Rules
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
function isAuthenticated() {
return request.auth != null;
}
function isDefined(field) {
return field in request.resource.data
@pfiadDi
pfiadDi / rules.test.ts
Created June 9, 2022 12:28
Testing Firestore security rules example
import fs from 'fs';
import * as path from 'path';
import {before,it} from "mocha"
const TEST_FIREBASE_PROJECT_ID = "test-firestore-rules-project";
import { Data, DataRealEstateTypeEnum} from '../entities/ts/models/Data'
import { OfferStatus } from '../entities/ts/models/OfferStatus'
import {