Skip to Content
പ്രധാന ആശയങ്ങൾഡാറ്റ പെർസിസ്റ്റൻസ്

ഡാറ്റ പെർസിസ്റ്റൻസ് API

ഓഫ്‌ലൈൻ-ആദ്യ ആർക്കിടെക്ചർ ഉപയോഗിച്ച് ഡാറ്റ ഡെലിവറി ട്രാക്ക്‌ലെറ്റ് ഉറപ്പ് നൽകുന്നു. എല്ലാ ലൊക്കേഷൻ കോർഡിനേറ്റും പ്രവർത്തന മാറ്റവും ജിയോഫെൻസ് ഇവൻ്റും ഒരു എൻക്രിപ്റ്റ് ചെയ്ത ലോക്കൽ SQLite ഡാറ്റാബേസിലേക്ക് തൽക്ഷണം എഴുതപ്പെടും.

Tracelet’s Sync എഞ്ചിൻ ഈ ഡാറ്റാബേസിൽ നിന്നുള്ള ഡാറ്റ സ്വയമേവ വായിക്കുകയും ഇല്ലാതാക്കുകയും ചെയ്യുമ്പോൾ, നിങ്ങൾക്ക് സ്ഥിരമായ സ്റ്റോറിൽ പൂർണ്ണമായ നിയന്ത്രണം ഉണ്ടായിരിക്കും.


1. ലൊക്കേഷനുകൾ അന്വേഷിക്കുന്നു

നിലവിൽ SQLite ഡാറ്റാബേസിൽ ഇരിക്കുന്ന അസംസ്‌കൃതവും സമന്വയിപ്പിക്കാത്തതുമായ ലൊക്കേഷനുകൾ നിങ്ങൾക്ക് എക്‌സ്‌ട്രാക്‌റ്റുചെയ്യാനാകും.

// Get ALL locations currently stored in the database final locations = await tl.Tracelet.getLocations(); for (final loc in locations) { print('Location: \${loc.coords.latitude}, \${loc.coords.longitude}'); }

വിപുലമായ SQL അന്വേഷണങ്ങൾ

നിങ്ങൾ എല്ലാം കൊണ്ടുവരേണ്ടതില്ല. സ്റ്റാൻഡേർഡ് SQL പോലെ തന്നെ ഡാറ്റാബേസ് ഫിൽട്ടർ ചെയ്യാൻ നിങ്ങളെ അനുവദിക്കുന്ന SQLQuery ഒബ്‌ജക്റ്റ് ട്രെയ്‌സ്‌ലെറ്റ് തുറന്നുകാട്ടുന്നു.

// Get only the locations recorded on a specific date final query = tl.SQLQuery( where: "timestamp >= ? AND timestamp <= ?", whereArgs: ["2024-01-01T00:00:00Z", "2024-01-01T23:59:59Z"], limit: 100, order: "timestamp DESC" ); final specificLocations = await tl.Tracelet.getLocations(query);

2. രേഖകൾ എണ്ണുന്നു

എത്ര ലൊക്കേഷനുകൾ ബാക്ക്‌ലോഗ് ചെയ്തുവെന്ന് നിങ്ങൾക്ക് അറിയണമെങ്കിൽ (ഉദാ. നിങ്ങളുടെ യുഐയിൽ “ഓഫ്‌ലൈൻ സമന്വയ ക്യൂ” ബാഡ്‌ജ് കാണിക്കാൻ), getCount() ഉപയോഗിക്കുക. ഇത് വളരെ ഒപ്റ്റിമൈസ് ചെയ്തതിനാൽ മെമ്മറിയിലേക്ക് റെക്കോർഡുകൾ ലോഡ് ചെയ്യുന്നില്ല.

// Count total un-synced locations final count = await tl.Tracelet.getCount(); print('Pending locations to sync: \$count'); // You can also use SQL queries here final highAccuracyCount = await tl.Tracelet.getCount( tl.SQLQuery(where: "accuracy <= 20") );

3. ഓഫ്‌ലൈൻ ക്യൂ പരിശോധിക്കുന്നു

സമന്വയിപ്പിച്ചതായി സ്ഥിരീകരിക്കുന്ന നിമിഷം തന്നെ ട്രേസ്‌ലെറ്റ് ഓരോ റെക്കോർഡും പ്രൂൺ ചെയ്യുന്നതിനാൽ, ഡാറ്റാബേസിലെ എല്ലാ സ്ഥലങ്ങളും — നിർവചനം അനുസരിച്ച് — തീർച്ചപ്പെടുത്താത്തതാണ് അപ്‌ലോഡ്. തീർപ്പുകൽപ്പിക്കാത്ത ക്യൂ സഹായികൾ ഇത് വ്യക്തമാക്കുന്നു, ഇത് “സമന്വയിപ്പിക്കാൻ കാത്തിരിക്കുന്നു” എന്ന ബാഡ്ജ് കാണിക്കുന്നതിനോ ഒരു ഓഡിറ്റ് കാഴ്‌ച നിർമ്മിക്കുന്നതിനോ കണക്റ്റിവിറ്റി നിർണ്ണയിക്കുന്നതിനോ അനുയോജ്യമാണ്.

// The locations still waiting to be delivered to your backend. final pending = await tl.Tracelet.getPendingLocations(); // Just the queue depth (optimized — no records are loaded into memory). final pendingCount = await tl.Tracelet.getPendingLocationCount(); print('Offline queue: \$pendingCount location(s) waiting to sync');

getLocations() / getCount() പോലെ, സമയപരിധി ഫിൽട്ടറിംഗിനായി ഇരുവരും ഒരു ഓപ്ഷണൽ SQLQuery സ്വീകരിക്കുന്നു.


4. ഡാറ്റ നശിപ്പിക്കുന്നു

ഉപയോക്താവ് ലോഗ് ഔട്ട് ചെയ്യുകയോ അല്ലെങ്കിൽ അവരുടെ അക്കൗണ്ട് വ്യക്തമായി ഇല്ലാതാക്കുകയോ ചെയ്താൽ, GDPR/HIPAA-യുമായി പൊരുത്തപ്പെടുന്നതിന് നിങ്ങൾ അവരുടെ ലൊക്കേഷൻ ചരിത്രം നശിപ്പിക്കണം.

എല്ലാം നശിപ്പിക്കുക

ഇത് ലൊക്കേഷൻ ഡാറ്റാബേസ് പൂർണ്ണമായും വൃത്തിയാക്കുന്നു.

await tl.Tracelet.destroyLocations();

നിർദ്ദിഷ്ട സ്ഥാനം നശിപ്പിക്കുക

നിങ്ങൾക്ക് അതിൻ്റെ UUID അറിയാമെങ്കിൽ, ഒരൊറ്റ നിർദ്ദിഷ്ട ലൊക്കേഷൻ നശിപ്പിക്കാനാകും.

നിങ്ങൾക്ക് UUID എവിടെ നിന്ന് ലഭിക്കും? Tracelet സൃഷ്‌ടിക്കുന്ന എല്ലാ ലൊക്കേഷനും സ്വയമേവ ഒരു തനതായ uuid അസൈൻ ചെയ്യപ്പെടുന്നു. getLocations() എന്നതിൽ വിളിച്ച് Location ഒബ്‌ജക്റ്റിലെ uuid പ്രോപ്പർട്ടി വായിച്ചുകൊണ്ട് നിങ്ങൾക്ക് ഈ ഐഡി ലഭിക്കും.

final locations = await tl.Tracelet.getLocations(); if (locations.isNotEmpty) { final firstLocationId = locations.first.uuid; // Destroy just this specific location from the database await tl.Tracelet.destroyLocation(firstLocationId); }

സമന്വയിപ്പിച്ചത് നശിപ്പിക്കുക

നിങ്ങളുടെ സെർവറിൽ നിന്ന് ഒരു HTTP 200 OK ലഭിച്ചതിന് ശേഷം Tracelet സ്വയമേവ ലൊക്കേഷനുകൾ ഇല്ലാതാക്കുന്നു. എന്നിരുന്നാലും, നിങ്ങൾ മാനുവൽ സമന്വയം നടത്തുകയാണെങ്കിൽ, നിങ്ങൾക്ക് ഈ ക്ലീനപ്പ് സ്വമേധയാ പ്രവർത്തനക്ഷമമാക്കാം.

await tl.Tracelet.destroySyncedLocations();