// docs / baas security / firebase if-true explainer
Firebase allow read, write: if true air a mhìneachadh: dè a tha e a' dèanamh agus mar a chàirear e
'S e <code>allow read, write: if true;</code> an aon mhì-rèiteachadh Firebase as cumanta ann an cinneasachadh. 'S e bun-roghainn modh-deuchainn a th' ann a tha Consoil Firebase a' moladh nuair a chruthaicheas tu stòr-dàta ùr, an riaghailt a chruthaicheas innealan còdaidh AI à sgrìobhainnean, agus an riaghailt a dh'fhosglas an stòr-dàta Firestore gu lèir agad do dhuine sam bith air an eadar-lìn. Tha an t-artaigil seo a' mìneachadh a' ghnàth-sgrìobhaidh gu mionaideach, a' sealltainn na chì ionnsaighiche nuair a tha an riaghailt seo beò, agus a' toirt seachad ceithir aithisgean nas teannaiche a fhreagras air diofar chleachdaidhean.
An gnàth-sgrìobhadh, loidhne air loidhne
Tha sgrìobhainn riaghailtean modh-deuchainn Firestore iomlan sia loidhnichean:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if true;
}
}
}Air a mhìneachadh:
- Bidh
rules_version = '2';a' taghadh einnsean nan riaghailtean v2 (làithreach). Tha seann riaghailtean v1 air an leigeil seachad. - Bidh
service cloud.firestorea' sgòpadh a' bhloc gu Firestore. Cleachdaidh Realtime Database gnàth-sgrìobhadh JSON-stèidhichte eile; cleachdaidh Cloud Storageservice firebase.storage. - Bidh
match /databases/{database}/documentsa' ceangal an stòir-dàta sònraichte(default)(chan eil ach aon aig a' mhòr-chuid de phròiseactan). - 'S e wildcard ath-chùrsach a th' ann an
match /{document=**}. Bidh an**a' freagairt air slighe sam bith aig doimhneachd sam bith. Còmhla ri{document}, glacaidh seo gach sgrìobhainn anns gach cruinneachadh — aon chlàs match a' riaghladh an stòir-dàta gu lèir. - 'S e
allow read, write: if true;bodhaig na riaghailt. Tha an dà chuidreadaguswriteair an ceadachadh; tha an cumhaif truedaonnan fìor. Thareada' còmhdachgetaguslist; thawritea' còmhdachcreate,update, agusdelete.
Buaidh ghlan: 's urrainn do chliant sam bith le ID pròiseict Firebase agus an SDK cheart sgrìobhainn sam bith a leughadh no a sgrìobhadh anns gach cruinneachadh. Chan eil dearbhadh a dhìth. Chan eil cuibhreannan-rèise gan cur an gnìomh.
Carson a tha Firebase a' libhrigeadh seo mar a' bhun-roghainn
Tha Firebase ag iarraidh ort a bhith a' còdadh anns na 30 diog an dèidh do phròiseact a chruthachadh. Bhiodh an roghainn eile — a' toirt ort riaghailt cheart a sgrìobhadh mus obraich leughadh no sgrìobhadh sam bith — a' bacadh tòiseachadh-luath. Mar sin tha an consoil a' tabhann dà roghainn nuair a chruthaicheas tu stòr-dàta: Modh cinneasachaidh (diùlt gach nì, sgrìobhaidh tu na riaghailtean) no Modh deuchainn (ceadaich gach nì airson 30 latha). Bidh a' mhòr-chuid de leasaichean a' briogadh modh deuchainn, agus an uairsin a' dìochuimhneachadh ath-thadhal. Bha an tìmear 30-latha aig seann phròiseactan; tha pròiseact làithreach le riaghailt if true gun chrìoch fèin-obrachail.
An duilgheadas structarail: bidh innealan còdaidh AI a' trèanadh air sgrìobhainnean, oideachaidhean, agus freagairtean Stack Overflow a tha a' sealltainn riaghailtean modh-deuchainn. Nuair a dh'fhaighnicheas tu de Cursor no Claude Code "mar a stèidhich mi Firebase", bidh am freagairt gu tric a' gabhail a-steach a' bhloc dearbh allow read, write: if true mar gum b' i an riaghailt cinneasachaidh. Chan eil fhios aig an AI — agus chan eilear a' brosnachadh fios a bhith aige — nach eil an riaghailt seo sàbhailte airson cinneasachadh.
Na chì ionnsaighiche
Gu cinneach, 's urrainn do dh'ionnsaighiche aig a bheil ID pròiseict Firebase agad (a ghabhas tarraing à bundle aplacaide sam bith ann an 30 diog) a tha a' ruith na leanas gach sgrìobhainn anns gach cruinneachadh a liostadh:
Tha aon iarrtas curl gun dearbhadh gu leòr gus gach cruinneachadh àireamhachadh. Faic am bloc soillsichte gu h-ìosal.
curl 'https://firestore.googleapis.com/v1/projects/[project-id]/databases/(default)/documents:listCollectionIds' \
-X POST \
-H 'Content-Type: application/json' \
-d '{}''S e an fhreagairt liosta iomlan nan cruinneachaidhean àrd-ìre. Airson gach cruinneachadh, bheir dàrna iarrtas air ais sgrìobhainnean. Chan eil cuibhreann-rèise air an t-slighe seo oir bidh riaghailtean if true a' gabhail ri trafaig gun aithne. Tha sinn air stòran-dàta Firebase fhaicinn le milleanan de sgrìobhainnean air an àireamhachadh ann an nas lugha na uair a thìde.
Air slighe an sgrìobhaidh: bidh aon POST le {fields} a' cruthachadh sgrìobhainn ùr. 'S urrainn do dh'ionnsaighichean na cruinneachaidhean agad a thruailleadh le sgudal, duilleagan a chuireas sùil air cleachdaichean a tha a' leughadh à Firestore a mhìl-dhèanamh, no an stòr-dàta agad a chleachdadh mar bhròcair-teachdaireachd an-asgaidh — tha an cunntas-cleachdaidh agad a' dol suas, nì thu rannsachadh, agus mìnichidh an cunntas an duilgheadas.
Ceithir aithisgean sàbhailte airson cinneasachadh
Tagh an aithisg a fhreagras air modail dàta na h-aplacaide agad. Tha na ceithir uile a' gabhail ris gu bheil dearbhadh cleachdaiche agad (Firebase Auth no solaraiche sam bith a chuireas a-mach comharra ID Firebase):
Roghainn 1: Sgrìobhainnean leis a' chleachdaiche
Am pàtran SaaS as cumanta. Bidh sgrìobhainnean a' fuireach fo /users/{userId}/... agus chan urrainn don aon sealbhadair beantainn riutha. match /users/{userId}/{document=**} { allow read, write: if request.auth != null && request.auth.uid == userId; }
match /users/{userId}/{document=**} {
allow read, write: if request.auth != null
&& request.auth.uid == userId;
}Roghainn 2: Raon sealbhadair air gach sgrìobhainn
Nuair a tha sgrìobhainnean a' fuireach ann an cruinneachaidhean rèidh (chan ann fo ID cleachdaiche), stòr raon owner_uid agus sgrùd e. match /posts/{postId} { allow read: if resource.data.public == true || resource.data.owner_uid == request.auth.uid; allow write: if request.auth.uid == resource.data.owner_uid; }
match /posts/{postId} {
allow read: if resource.data.public == true
|| resource.data.owner_uid == request.auth.uid;
allow write: if request.auth.uid == resource.data.owner_uid;
}Roghainn 3: Sgaradh org ioma-luchd-fastaidh
Airson SaaS B2B le dàta org-sgòpaichte. Stòr raon org_id air gach sgrìobhainn agus sgrùd e an aghaidh gnàth-thagradh a' chleachdaiche. allow read, write: if request.auth.token.org_id == resource.data.org_id;. Feumaidh seo an gnàth-thagradh a shuidheachadh aig àm clàraidh tro SDK Rianachd Firebase.
allow read, write: if request.auth.token.org_id == resource.data.org_id;
Roghainn 4: Susbaint phoblach leughaidh-a-mhàin
Airson susbaint margaidheachd, pròifilean poblach, catalogan toraidh — rud sam bith a tha gu fìor phoblach-leughaidh ach rianachd-a-mhàin-sgrìobhaidh. match /products/{productId} { allow read: if true; allow write: if request.auth.token.admin == true; }. Tha an gnàth-thagradh admin air a shuidheachadh air cunntasan rianachd a-mhàin.
match /products/{productId} {
allow read: if true;
allow write: if request.auth.token.admin == true;
}Ceist sgrùdaidh luath
Mus càirich thu, dearbh a bheil if true beò gu fìor. Fosgail Consoil Firebase → Firestore → Riaghailtean agus lorg if true. Ma lorgas tu e taobh a-muigh beachd sam bith, tha lorg riaghailt fhosgailte agad. Bidh an Meirleach Riaghailtean san aon UI a' leigeil leat iarrtas an ionnsaighich ath-chluich gu h-ionadail — cuir a-steach GET /users/somebody gun aithne agus dearbh gu bheil am meirleach a' tilleadh Air a cheadachadh.
Dearbhadh bhon taobh a-muigh: ruith sgan FixVibe an aghaidh URL a' chinneasachaidh agad. Bidh an sgrùdadh baas.firebase-rules a' tomhas nan riaghailtean Firestore, Realtime Database, agus Storage agad agus ag aithris an aon lorg a lorgadh ionnsaighiche — neo-eisimeileach bho na sheallas Consoil Firebase.
Ceistean Cumanta
Dè an diofar eadar <code>if true</code> agus <code>if request.auth != null</code>?
Bidh if true a' ceadachadh ruigsinn gun aithne — duine sam bith air an eadar-lìn. Bidh if request.auth != null ag iarraidh cleachdaiche clàraichte sam bith, a tha nas fheàrr ach fhathast ceàrr: 's urrainn do chleachdaiche sam bith den aplacaid agad dàta gach cleachdaiche eile a leughadh. Feumaidh riaghailtean cinneasachaidh sgòpadh gu cleachdaiche no org sònraichte tro request.auth.uid == resource.data.owner_uid no a leithid.
An toir Firebase crìoch fèin-obrachail air riaghailtean <code>if true</code> a-riamh?
Bha tìmear 30-latha aig seann phròiseactan (ro 2023) a thionndaidheadh riaghailtean if true gu if false. Chan eil aig pròiseactan làithreach — bidh an riaghailt a' maireachdainn gun chrìoch gus an tèid a chur na h-àite le làimh. Ma chruthaich thu am pròiseact agad ro 2023 agus tha na riaghailtean agad a' coimhead ceart, dèan dearbhadh dùbailte: dh'fhaodadh an tìmear a bhith air an tionndadh gu if false mu thràth, a bhacas an aplacaid agad fhèin.
An urrainn dhomh sgrùdadh ceann-latha san àm ri teachd a chleachdadh mar lìon sàbhailteachd?
Chan urrainn — chan e smachd tèarainteachd a th' ann an cumha stampa-ama. Tha e a' crìochnachadh na riaghailt fhosgailte air ceann-latha san àm ri teachd, a tha a' ciallachadh gus an ceann-latha sin tha làn-ruigsinn aig luchd-ionnsaigh. Agus dìochuimhnichidh tu an ceann-latha. Cuir if true an àite le riaghailt sgòpaichte-auth, chan e fear le crìoch-ùine.
Dè ma tha an aplacaid agam fìor phoblach-leughaidh (blog, catalog toraidh)?
An uairsin sgrìobh gu follaiseach allow read: if true; allow write: if false; air a' chruinneachadh phoblach a-mhàin — chan ann air gach cruinneachadh san stòr-dàta agad. Cleachd clàs match air leth gach cruinneachadh agus na cleachd an wildcard ath-chùrsach {document=**} air riaghailtean a ghabhas sgrìobhadh.
An ath cheum
Ruith sgan FixVibe an aghaidh URL a' chinneasachaidh agad — bidh an sgrùdadh baas.firebase-rules a' dearbhadh a bheil if true ri chleachdadh an-dràsta bhon eadar-lìn phoblach. Airson meacanaigeachd an sganair agus na lorgaidhean co-shìnte airson Realtime Database agus Storage, faic Sganair riaghailtean Firebase. Airson clas co-ionann mì-rèiteachaidh air Supabase, leugh Sganair RLS Supabase.
