// docs / baas security / firebase if-true explainer
Firebase allow read, write: if true akọwapụtara: ihe ọ na-eme na otu esi edozi ya
<code>allow read, write: if true;</code> bụ otu nhazi adịghị mma Firebase kacha emepụta na mmepụta. Ọ bụ ndabara ọnọdụ ule nke Firebase Console na-atụ aro mgbe ị na-emepụta ọdụ data ọhụrụ, iwu ngwa ihe nkuzi koodu AI na-emepụtaghachi site na akwụkwọ, na iwu na-emeghe ọdụ data Firestore gị niile na onye ọ bụla na ịntanetị. Edemede a na-akọwa usoro nke ọma, na-egosi ihe onye na-awakpo na-ahụ mgbe iwu a dị ndụ, ma na-enye gị ndochi anọ na-akawanye anya nke dabara n'iji ihe dị iche iche.
Usoro, ahịrị site na ahịrị
Akwụkwọ iwu ọnọdụ ule Firestore zuru oke bụ ahịrị isii:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if true;
}
}
}Atụgharịrị:
rules_version = '2';na-ahọrọ injin iwu v2 (ugbu a). Iwu v1 ochie na-ahapụ.service cloud.firestorena-akọwapụta ngọngọ na Firestore. Realtime Database na-eji usoro JSON dị iche; Cloud Storage na-ejiservice firebase.storage.match /databases/{database}/documentsna-ejikọta ọdụ data pụrụ iche(default)(ọtụtụ ọrụ nwere naanị otu).match /{document=**}bụ wildcard mmegharị.**na-emekọrịta ụzọ ọ bụla nke omimi ọ bụla. Jikọta na{document}, nke a na-ejide akwụkwọ ọ bụla na mkpokọta ọ bụla — otu nkebi ahịrị na-achịkwa ọdụ data dum.allow read, write: if true;bụ ahụ iwu. A na-enye mareadmawriteohere; ọnọdụif truebụ, eh, eziokwu mgbe niile.readkpuchiri ọrụgetnalist;writekpuchiricreate,update, nadelete.
Nsonaazụ: onye ahịa ọ bụla nwere ID ọrụ Firebase na SDK kwesịrị ekwesị nwere ike ịgụ ma ọ bụ dee akwụkwọ ọ bụla na mkpokọta ọ bụla. Achọghị njirimara. Anaghị emanye njedebe ọnụego.
Ihe kpatara Firebase ji eziga nke a dị ka ndabara
Firebase chọrọ ka ị na-edekọ na sekọnd 30 mbụ mgbe ị mepụtara ọrụ. Ụzọ ọzọ — ime ka ị dee iwu ziri ezi tupu ọgụgụ ma ọ bụ ide ọ bụla na-arụ ọrụ — ga-egbochi mbata. Yabụ Console na-enye nhọrọ abụọ mgbe ị na-emepụta ọdụ data: Ọnọdụ Mmepụta (jụ ihe niile, ị na-ede iwu) ma ọ bụ Ọnọdụ Ule (nye ihe niile ohere ụbọchị 30). Ọtụtụ ndị mmepe na-apị ọnọdụ ule, mgbe ahụ chefuo ịgaghachi. Ọrụ ochie nwere oge ụbọchị 30; ọrụ ugbu a nwere iwu if true na-adịgide adịgide na-enweghị njedebe akpaghị aka.
Nsogbu ihe owuwu: ngwa ihe nkuzi koodu AI na-azụ na akwụkwọ, ihe nkuzi, na azịza Stack Overflow nke na-egosi iwu ọnọdụ ule. Mgbe ị jụrụ Cursor ma ọ bụ Claude Code "otu m si ahazi Firebase," azịza na-emekarị gụnyere ngọngọ kpọmkwem allow read, write: if true dị ka ọ bụ iwu mmepụta. AI amaghị — na enweghị ya — na iwu a adịghị nchekwa maka mmepụta.
Ihe onye na-awakpo na-ahụ
N'ezie, onye na-awakpo nke maara ID ọrụ Firebase gị (enwere ike iwepụta site na ngwakọta ngwa ọ bụla ezigara na sekọnd 30) ma na-agba ihe na-esonụ nwere ike ịdepụta akwụkwọ ọ bụla na mkpokọta ọ bụla:
Otu arịrịọ curl enweghị njirimara ezuola iji depụta mkpokọta ọ bụla. Hụ ngọngọ akara akpọkwa n'okpuru.
curl 'https://firestore.googleapis.com/v1/projects/[project-id]/databases/(default)/documents:listCollectionIds' \
-X POST \
-H 'Content-Type: application/json' \
-d '{}'Azịza bụ ndepụta zuru oke nke mkpokọta elu-larịị. Maka mkpokọta ọ bụla, arịrịọ nke abụọ na-eweghachi akwụkwọ. Enweghị njedebe ọnụego na ụzọ a n'ihi na iwu if true na-anara okporo ụzọ enweghị aha. Anyị ahụla ọdụ data Firebase nwere ọtụtụ nde akwụkwọ ndepụta n'ime otu awa.
Na ụzọ ide: otu POST nwere {fields} na-emepụta akwụkwọ ọhụrụ. Ndị na-awakpo nwere ike imetọ mkpokọta gị na ahịhịa, megbu ibe ndị ọrụ na-ahụ nke na-agụ na Firestore, ma ọ bụ jiri ọdụ data gị dị ka onye nrere ozi efu — ụgwọ ojiji gị na-arị elu, ị na-enyocha, ụgwọ ahụ na-akọwa nsogbu.
Ndochi anọ dị mma maka mmepụta
Họrọ ndochi dabara n'ụdị data ngwa gị. Anọ niile na-eche na ị nwere nyocha onye ọrụ (Firebase Auth ma ọ bụ onye na-eweta ọ bụla nke na-enye token ID Firebase):
Nhọrọ 1: Akwụkwọ onye ọrụ nwe
Ụdị SaaS kacha amasị. Akwụkwọ na-ebi n'okpuru /users/{userId}/... na naanị onye nwe ya nwere ike imetụ ha. 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;
}Nhọrọ 2: Mpaghara onye nwe na akwụkwọ ọ bụla
Mgbe akwụkwọ na-ebi na mkpokọta dị larịị (na-abụghị nke etinyere n'okpuru ID onye ọrụ), debe mpaghara owner_uid ma lelee ya. 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;
}Nhọrọ 3: Mwepụ ọtụtụ-ndị mbịarambịa
Maka B2B SaaS nwere data akọwapụtara ụlọ ọrụ. Debe mpaghara org_id na akwụkwọ ọ bụla ma lelee ya megide ọkwa omenala onye ọrụ. allow read, write: if request.auth.token.org_id == resource.data.org_id;. Chọrọ ịtọ ọkwa omenala n'oge ndebanye aha site na Firebase Admin SDK.
allow read, write: if request.auth.token.org_id == resource.data.org_id;
Nhọrọ 4: Ọdịnaya ọha agụ-naanị
Maka ọdịnaya azụmahịa, profaịlụ ọha, katalọgụ ngwaahịa — ihe ọ bụla na bụ n'ezie ọgụgụ-ọha mana naanị-onye nchịkwa-ide. match /products/{productId} { allow read: if true; allow write: if request.auth.token.admin == true; }. A na-edobe ọkwa omenala admin naanị na akaụntụ nchịkwa.
match /products/{productId} {
allow read: if true;
allow write: if request.auth.token.admin == true;
}Ajụjụ nyocha ngwa ngwa
Tupu idozi, lelee ma if true ọ dị ndụ. Mepee Firebase Console → Firestore → Iwu ma chọọ if true. Ọ bụrụ na ị chọta ya ebe ọ bụla n'èzí nkọwa, ị nwere nchọpụta iwu mepere emepe. Simulator Iwu n'otu UI na-enye gị ohere ịkpọghachi arịrịọ onye na-awakpo na mpaghara — gbanye enweghị aha GET /users/somebody ma kwado na simulator na-aweghachi Enyere.
Nkwado èzí: gbaa nyocha FixVibe megide URL mmepụta gị. Nyocha baas.firebase-rules na-anwale Firestore gị, Realtime Database, na iwu Nchekwa ma na-akọ otu nchọpụta nke onye na-awakpo ga-achọpụta — n'ihu n'ihu nke ihe Firebase Console na-egosi.
Ajụjụ a na-ajụkarị
Gịnị bụ ọdịiche n'etiti <code>if true</code> na <code>if request.auth != null</code>?
if true na-enye ohere enweghị aha — onye ọ bụla na ịntanetị. if request.auth != null chọrọ onye ọrụ bata ọ bụla, nke ka mma mana ka na-ezighi ezi: onye ọrụ ngwa gị ọ bụla nwere ike ịgụ data onye ọrụ ọzọ ọ bụla. Iwu mmepụta aghaghị ịkọwapụta na onye ọrụ kpọmkwem ma ọ bụ org site na request.auth.uid == resource.data.owner_uid ma ọ bụ otu.
Firebase ọ na-eme iwu <code>if true</code> akpaghị aka ka ọ daa?
Ọrụ ochie (tupu 2023) nwere oge ụbọchị 30 nke gbanwere iwu if true ka ọ bụrụ if false. Ọrụ ugbu a enweghị — iwu na-anọgide ruo mgbe a gbanwere ya n'aka. Ọ bụrụ na ị mepụtara ọrụ gị tupu 2023 na iwu gị na-adị mma, lelee ọzọ: oge nwere ike ịgbanwe ha na if false, nke na-egbochi ngwa nke gị.
Enwere m ike iji nyocha akara oge n'ihu dị ka ụgbọ mmiri nchekwa?
Mba — ọnọdụ akara oge abụghị nchịkwa nchekwa. Ọ na-emechi iwu mepere emepe na ụbọchị n'ihu, nke pụtara na ruo ụbọchị ahụ ndị na-awakpo nwere ohere zuru oke. Ị ga-echefukwa ụbọchị. Dochie if true na iwu na-akọwapụta nyocha, ọ bụghị nke oge.
Gịnị ma ọ bụrụ na ngwa m bụ n'ezie ọgụgụ-ọha (blog, katalọgụ ngwaahịa)?
Mgbe ahụ dee n'ụzọ doro anya allow read: if true; allow write: if false; na mkpokọta ọha naanị — ọ bụghị na mkpokọta ọ bụla na ọdụ data gị. Jiri nkebi match dị iche kwa mkpokọta ma ejila wildcard mmegharị {document=**} na iwu enwere ike ide.
Nzọụkwụ na-esote
Gbaa nyocha FixVibe megide URL mmepụta gị — nyocha baas.firebase-rules na-akwado ma if true nwere ike rie ugbu a site na ịntanetị ọha. Maka ihe sikana na nchọpụta yiri maka Realtime Database na Nchekwa, hụ Sikana iwu Firebase. Maka klas otu nhazi adịghị mma na Supabase, gụọ Sikana RLS Supabase.
