தரவு நிலைத்தன்மை API
ஆஃப்லைன்-முதல் கட்டமைப்பைப் பயன்படுத்தி தரவு விநியோகத்திற்கு டிரேஸ்லெட் உத்தரவாதம் அளிக்கிறது. ஒவ்வொரு இருப்பிட ஒருங்கிணைப்பு, செயல்பாடு மாற்றம் மற்றும் ஜியோஃபென்ஸ் நிகழ்வு ஆகியவை மறைகுறியாக்கப்பட்ட உள்ளூர் SQLite தரவுத்தளத்தில் உடனடியாக எழுதப்படும்.
ட்ரேஸ்லெட்டின் ஒத்திசைவு இயந்திரம் இந்தத் தரவுத்தளத்திலிருந்து தரவைத் தானாகப் படித்து நீக்கும் அதே வேளையில், நிலையான கடையின் மீது உங்களுக்கு முழு கைமுறைக் கட்டுப்பாடு உள்ளது.
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. பதிவுகளை எண்ணுதல்
எத்தனை இடங்கள் பேக்லாக் செய்யப்பட்டுள்ளன என்பதை நீங்கள் தெரிந்து கொள்ள வேண்டும் என்றால் (எ.கா., உங்கள் UI இல் “ஆஃப்லைன் ஒத்திசைவு வரிசை” பேட்ஜைக் காட்ட), 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 எங்கே கிடைக்கும்?
ட்ரேஸ்லெட்டால் உருவாக்கப்பட்ட ஒவ்வொரு இருப்பிடத்திற்கும் ஒரு தனிப்பட்ட 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);
}ஒத்திசைவை அழிக்கவும்
பொதுவாக Tracelet ஆனது உங்கள் சர்வரில் இருந்து HTTP 200 சரியைப் பெற்ற பிறகு தானாகவே இருப்பிடங்களை நீக்கிவிடும். இருப்பினும், நீங்கள் கைமுறையாக ஒத்திசைக்கிறீர்கள் என்றால், இந்த சுத்தம் செய்வதை கைமுறையாகத் தூண்டலாம்.
await tl.Tracelet.destroySyncedLocations();