L-użu tad-database m77: kollezzjonijiet, filtri u dejta għal kull utent
Kull app ta' builder77 tiġi b'database integrata. Hawn kif jaħdmu l-kollezzjonijiet, il-filtri, l-issortjar u r-records għal kull utent — u kif iżżomm id-dejta privata privata.
Il-biċċa l-kbira tal-ħin qatt mhu se tmiss id-database direttament — tiddeskrivi l-app tiegħek, u builder77 jikteb il-kodiċi li jaħżen u jaqra d-dejta. Imma meta tkun taf kif taħdem, tikteb prompts aħjar, issib l-iżbalji aktar malajr u tieħu deċiżjonijiet tajbin dwar il-privatezza. Hawn tour ta' m77.db.
Kollezzjonijiet u records
Id-dejta tgħix f'kollezzjonijiet — gruppi ta' records b'isem bħal tasks, bookings jew posts. M'hemmx schema x'tiddefinixxi: kollezzjoni tinħoloq l-ewwel darba li tikteb fiha, u kull record hu oġġett sempliċi b'kwalunkwe oqsma li tagħtih.
const task = await m77.db.create('tasks', { title: 'Write launch post', done: false });
// -> { id, title, done, createdAt, updatedAt, ownerId }builder77 iżid id, createdAt, updatedAt u ownerId awtomatikament. ownerId jiġi ssettjat għall-utent tal-app li jkun għamel login meta jkun hemm wieħed, u dan isir importanti għall-permessi hawn taħt.
Qari tad-dejta: list, get u count
const open = await m77.db.list('tasks', {
where: { done: false }, // exact-match filter
sort: '-createdAt', // '-' = descending
limit: 50 // up to 500
});
const one = await m77.db.get('tasks', id); // record or null
const doneCount = await m77.db.count('tasks', { where: { done: true } });where iqabbel l-oqsma eżatt, u dan ikopri l-biċċa l-kbira tal-bżonnijiet ta' app: filtri tal-istatus, kategoriji, ID tal-ġenitur għal records relatati. Għal tfittxija waqt li tittajpja f'lista mhux kbira, hu komuni li ttella' r-records u tiffiltrahom fil-browser.
Aġġornament u tħassir
await m77.db.update('tasks', id, { done: true }); // shallow merge
await m77.db.remove('tasks', id);update jgħaqqad l-oqsma li tgħaddi mar-record eżistenti, għalhekk trid tibgħat biss dak li nbidel.
Dejta għal kull utent b'mine: true
Għal apps fejn kull persuna għandha d-dejta tagħha — djarji, baġits, habit trackers — għaqqad m77.auth mal-għażla mine. Meta utent ikun għamel login, mine: true jagħti lura biss ir-records li ħoloq hu.
await m77.auth.signIn({ email, password });
const myEntries = await m77.db.list('entries', { mine: true, sort: '-createdAt' });Hemm ukoll it-tieni saff ta' protezzjoni integrat: record maħluq minn utent li għamel login jista' jiġi aġġornat jew imħassar biss minn dak l-istess utent. Anki jekk xi ħadd jibni talba bl-idejn, l-API jirrifjuta l-bidliet f'records li mhumiex tiegħu.
Dejta pubblika u privata: gwida qasira
- Kontenut pubbliku (oġġetti tal-menu, posts tal-blog, listi tal-prodotti): m'hemmx bżonn login biex jinqraw. Itlob lil builder77 iżid dejta tal-bidu, jew iżid skrin tal-admin biex timmaniġġjahom, u editjahom meta trid fit-tab Data.
- Sottomissjonijiet (formoli tal-kuntatt, waitlists, bookings): kulħadd jista' joħloqhom; int taqrahom fit-tab Data.
- Dejta personali (noti, reġistri tas-saħħa, finanzi): itlob login u dejjem agħmel il-query b'
mine: true.
Regola waħda: kull ħaġa fil-kodiċi front-end tal-app tiegħek tidher lill-viżitaturi, u listi mingħajr mine: true jistgħu jinqraw minn kull min għandu l-link tal-app. Jekk id-dejta hi personali, poġġiha wara l-login u mine. Jekk l-app kollha hi għalik jew għat-tim tiegħek biss, ixgħel App privata fl-Issettjar.
It-tab Data
Fil-builder, it-tab Data jħallik tara kull kollezzjoni, teditja jew tħassar records, tara l-utenti tal-app tiegħek u tirrevedi l-fajls imtellgħin. Hu l-aktar mod mgħaġġel biex tirranġa żball tal-ittajpjar fil-kontenut, tnaddaf entrati tat-test, jew tiċċekkja li formola qed tissejvja dak li tistenna.
L-istess dejta minn Flutter u klijenti oħra
Il-web SDK hu saff irqiq madwar REST API, li hu wkoll dak li jużaw l-esportazzjonijiet ta' Flutter. Dan ifisser li kwalunkwe klijent jista' jaqra u jikteb l-istess kollezzjonijiet:
GET /api/runtime/<projectId>/db/tasks?where={"done":false}&sort=-createdAt&limit=100
POST /api/runtime/<projectId>/db/tasks { "data": { "title": "Hi" } }
Authorization: Bearer <appUserToken> (optional, from /auth/signin)It-tokens tal-utenti tal-app huma limitati għal proġett wieħed, għalhekk token minn app waħda ma jistax jintuża kontra oħra. Il-qari u l-kitba fid-database ma jużawx krediti — ibni app b'kemm trid dejta.
Prompts għad-dejta
Tista' tmexxi dan kollu b'lingwaġġ sempliċi: “aħżen l-ispejjeż bl-ammont, il-kategorija u d-data; kull utent jara tiegħu biss”, jew “żid qasam tal-istatus mal-bookings u filtru għal dawk pendenti”. L-AI jaf l-SDK, għalhekk ġeneralment biżżejjed tiddeskrivi l-mudell tad-dejta.