Korištenje baze podataka m77: kolekcije, filtri i podaci po korisniku
Svaka builder77 aplikacija dolazi s ugrađenom bazom podataka. Kako rade kolekcije, filtri, sortiranje i zapisi po korisniku — i kako privatne podatke zadržati privatnima.
Većinu vremena nećeš izravno dirati bazu podataka — opišeš aplikaciju, a builder77 napiše kod koji sprema i čita podatke. No znati kako to radi pomaže ti pisati bolje promptove, brže otklanjati pogreške i donositi dobre odluke o privatnosti. Evo obilaska kroz m77.db.
Kolekcije i zapisi
Podaci žive u kolekcijama — imenovanim skupinama zapisa poput tasks, bookings ili posts. Nema sheme koju treba definirati: kolekcija nastaje kad u nju prvi put upišeš, a svaki zapis je običan objekt s poljima koja mu zadaš.
const task = await m77.db.create('tasks', { title: 'Write launch post', done: false });
// -> { id, title, done, createdAt, updatedAt, ownerId }builder77 automatski dodaje id, createdAt, updatedAt i ownerId. ownerId se postavlja na prijavljenog korisnika aplikacije kad postoji, što postaje važno za dozvole u nastavku.
Čitanje podataka: list, get i 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 traži točna podudaranja polja, što pokriva većinu potreba aplikacija: filtre po statusu, kategorije, ID nadređenog zapisa za povezane zapise. Za pretraživanje dok tipkaš kroz manji popis uobičajeno je učitati zapise i filtrirati ih u pregledniku.
Ažuriranje i brisanje
await m77.db.update('tasks', id, { done: true }); // shallow merge
await m77.db.remove('tasks', id);update spaja polja koja proslijediš s postojećim zapisom, pa trebaš poslati samo ono što se promijenilo.
Podaci po korisniku uz mine: true
Za aplikacije u kojima svatko ima svoje podatke — dnevnike, budžete, praćenje navika — kombiniraj m77.auth s opcijom mine. Kad je korisnik prijavljen, mine: true vraća samo zapise koje je on stvorio.
await m77.auth.signIn({ email, password });
const myEntries = await m77.db.list('entries', { mine: true, sort: '-createdAt' });Ugrađen je i drugi sloj zaštite: zapis koji je stvorio prijavljeni korisnik može ažurirati ili izbrisati samo taj isti korisnik. Čak i ako netko ručno sastavi zahtjev, API odbija izmjene zapisa koji mu ne pripadaju.
Javni i privatni podaci: kratki vodič
- Javni sadržaj (stavke jelovnika, blog članci, popisi proizvoda): za čitanje nije potrebna prijava. Zamoli builder77 da doda početne podatke ili administratorski zaslon za upravljanje njima i uređuj ih kad god želiš na kartici Podaci.
- Prijave (obrasci za kontakt, popisi čekanja, rezervacije): bilo tko ih može stvoriti; ti ih čitaš na kartici Podaci.
- Osobni podaci (bilješke, zdravstveni zapisi, financije): zahtijevaj prijavu i uvijek postavljaj upite s
mine: true.
Jedno pravilo: sve u front-end kodu tvoje aplikacije vidljivo je posjetiteljima, a popise bez mine: true može pročitati svatko tko ima poveznicu na aplikaciju. Ako su podaci osobni, stavi ih iza prijave i mine. Ako je cijela aplikacija samo za tebe ili tvoj tim, uključi Privatna aplikacija u Postavkama.
Kartica Podaci
Kartica Podaci u alatu omogućuje ti pregled svih kolekcija, uređivanje ili brisanje zapisa, pregled korisnika aplikacije i prenesenih datoteka. To je najbrži način da ispraviš tipfeler u sadržaju, počistiš testne unose ili provjeriš sprema li obrazac ono što očekuješ.
Isti podaci iz Fluttera i drugih klijenata
Web SDK je tanki omotač oko REST API-ja, koji koriste i Flutter izvozi. To znači da bilo koji klijent može čitati i pisati iste kolekcije:
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)Tokeni korisnika aplikacije ograničeni su na jedan projekt, pa se token jedne aplikacije ne može koristiti za drugu. Čitanja i pisanja u bazu podataka ne troše kredite — izgradi aplikaciju s onoliko podataka koliko želiš.
Promptovi za podatke
Sve ovo možeš usmjeravati običnim jezikom: „spremaj troškove s iznosom, kategorijom i datumom; svaki korisnik vidi samo svoje” ili „dodaj polje statusa rezervacijama i filtar za one na čekanju”. AI poznaje SDK, pa je opis podatkovnog modela obično sve što treba.