কীভাবে ফ্লটার ব্যবহার করে স্থানীয় স্টোরেজে সংরক্ষণ করবেন?


103

অ্যান্ড্রয়েডে, আমার কাছে তথ্য থাকলে আমি অধিবেশন চালিয়ে যেতে চাই আমি জানি আমি SharedPreferences ব্যবহার করতে পারি বা একটি এসকিউএল ডাটাবেস তৈরি করতে পারি এমনকি ডিভাইসে কোনও ফাইল লিখতে পারি এবং পরে তা পড়তে পারি।

এইভাবে ডেভেলপমেন্ট ব্যবহার করে কীভাবে ডেটা সংরক্ষণ এবং পুনরুদ্ধার করার কোনও উপায় আছে? অথবা আমার কি পরিষেবাগুলির উদাহরণে অ্যান্ড্রয়েড এবং আইওএসের জন্য ডিভাইস-নির্দিষ্ট কোড লিখতে হবে ?

উত্তর:


122

কয়েকটি অপশন আছে:



আমি ঘর ব্যবহার করি তবে কি তা সম্ভব? আমি যদি রুম ব্যবহার করি তবে আইওএসের সাথে কী হবে?
এমএনএফএস

4
অংশীদারি পছন্দসমূহের জন্য এটি আরও ভাল কাজ করছে বলে মনে হয়: pub.dev/packages/shared_preferences
ইয়াস্টার

নতুন প্যাকেজ github.com/lesnitsky/flutter_localstores
পাবলো

54

আপনি যদি এমন পরিস্থিতিতে থাকেন যে আপনি কোনও ছোট মান সংরক্ষণ করতে চান যা আপনি পরে উল্লেখ করতে চান। তারপরে আপনার ভাগ করে নেওয়া পছন্দগুলি ব্যবহার করে কী-মান ডেটা হিসাবে আপনার ডেটা সংরক্ষণ করা উচিত

তবে আপনি যদি বড় ডেটা সঞ্চয় করতে চান তবে আপনার এসকিউএলআইটিইয়ের সাথে যাওয়া উচিত

তবে আপনি সর্বদা অফলাইনে উপলব্ধ ফায়ারবেস ডাটাবেস ব্যবহার করতে পারেন

যেহেতু আমরা স্থানীয় স্টোরেজ সম্পর্কে কথা বলছি আপনি সর্বদা ডিস্কে ফাইল পড়তে এবং লিখতে পারেন

অন্যান্য সমাধান:


স্কুফ্লাইট বা ফায়ারবেস কখন ব্যবহার করবেন তা কীভাবে সিদ্ধান্ত নেবেন?
stuckedoverflow

4
sqfliteএটি কেবল ফোনে সঞ্চয় করে। firebaseএকটি কেন্দ্রীয় ডাটাবেসে সিঙ্ক হয়ে যায় যেখানে আপনি আপনার ব্যাকএন্ডে কোয়েরি করতে পারেন। firebaseডিভাইসগুলির মধ্যে সহজ সিঙ্ক্রোনাইজেশনও করে।
Feu

দয়া করে নোট করুন যে ফায়ারবেসের ফায়ার স্টোর ডিফল্ট 10 এমবিতে রয়েছে এবং এটি 1MB এর চেয়ে কম এবং সর্বোচ্চ 100MB তে সেট করা যেতে পারে। খাঁটি অফলাইন অ্যাক্সেসের প্রস্তাব দেওয়া হয় না। আপনি যদি কেবল স্থানীয় স্টোরেজ বিকল্প হিসাবে এটি ব্যবহার করার পরিকল্পনা করেন এবং ডেটা বড় হয় তবে আপনার পুনর্বিবেচনা করার প্রয়োজন হতে পারে। firebase.google.com/docs/references/android/com/google/firebase/…
ল্যান্ডার

এটি উত্তর পছন্দ করা উচিত, কারণ এটি বিভিন্ন পরিস্থিতিতে যেখানে সন্ধান করতে হবে তা কেবল ব্যাখ্যা করে।
জানপিটারকা

12

আপনি ঝাঁকুনির অফিসিয়াল প্লাগইন থেকে ভাগ করা পছন্দগুলি ব্যবহার করতে পারেন । https://github.com/flutter/plugins/tree/master/packages/shared_preferences

এটি অ্যান্ড্রয়েডের জন্য ভাগ করা পছন্দসই, আইওএসের জন্য এনএসউসারডেফল্টস ব্যবহার করে।


4
এটি কি বড় ডাটাবেসের জন্য আদর্শ?
অস্থায়ী_

4
@temp_ আমি iOS সম্পর্কে খুব বেশি জানি না don't অ্যান্ড্রয়েডে ভাগ করা পছন্দগুলি অবশ্য বড় ডেটাবেসের জন্য উপযুক্ত নয়। এগুলি ফাইল সিস্টেমে প্লেইন এক্সএমএল ফাইল হিসাবে লেখা হয় এবং অনুরোধ করা হলে ফাইল সিস্টেম থেকে পড়ে। এগুলি মূলত অ্যাপ্লিকেশন পছন্দগুলি এবং অনুরূপ জিনিসগুলি সংরক্ষণ করার জন্য ব্যবহৃত হয়।
ফরজেমো

অংশীদারি পছন্দসমূহের জন্য এটি আরও ভাল কাজ করছে বলে মনে হচ্ছে: pub.dev/packages/shared_preferences
ইয়াস্টার

9

আপনার যদি এপিআই টোকেন বা লগইন ডেটা (পাসওয়ার্ড নয়!) এর মতো সাধারণ মানগুলি সংরক্ষণ করতে হয় তবে আমি যা ব্যবহার করেছি তা এখানে:

import 'package:shared_preferences/shared_preferences.dart';

asyncFunc() async { // Async func to handle Futures easier; or use Future.then
  SharedPreferences prefs = await SharedPreferences.getInstance();
}
...

// Set
prefs.setString('apiToken', token);

// Get
String token = prefs.getString('apiToken');

// Remove
prefs.remove('apiToken');

shared_preferencesআপনার পাবস্পেক.আইএমএলে নির্ভরতা যুক্ত করতে ভুলবেন না (স্পেসিং বিন্যাস সংরক্ষণ করুন):

dependencies:

  shared_preferences: any

8

দেরি করে দেওয়া উত্তর তবে আমি আশা করি এটি পরবর্তী সময়ে এখানে আসা প্রত্যেককে সহায়তা করবে 😁 ..

আমি সংরক্ষণের বিভাগগুলি এবং তাদের স্বতন্ত্র সেরা পদ্ধতিগুলি সরবরাহ করব ...

  1. ভাগ করা পছন্দসমূহ স্টোরেজে সাধারণ মানগুলি সংরক্ষণ করার সময় এটি ব্যবহার করুন উদাহরণস্বরূপ রঙ থিম, অ্যাপ্লিকেশন ভাষা, শেষ স্ক্রোল অবস্থান (অ্যাপ্লিকেশনগুলি পড়ার ক্ষেত্রে) .. অ্যাপ্লিকেশন পুনরায় চালু হওয়ার পরে আপনি যে সাধারণ সেটিংসটি চালিয়ে যেতে চাইবেন এটি আপনি করতে পারেন .. তবে আপনি এটি ব্যবহার করতে পারেন বড় বড় জিনিস মানুষ (তালিকাসমূহ, মানচিত্র, চিত্র) সঞ্চয় করতে কিন্তু যে ধারাবাহিকতাতে এবং deserialization করতে হবে .. এই deserialization এবং ধারাবাহিকতাতে উপর আরো জানতে যেতে এখানে
  2. ফাইলগুলি যখন আপনার কাছে আরও বেশি সংজ্ঞায়িত ডেটা থাকে তখন লগ ফাইলগুলি, চিত্র ফাইলগুলি এবং আপনি সিএসভি ফাইলগুলি রফতানি করতে চান এটি অনেক সাহায্য করে .. আমি শুনেছি ডিস্কটি ফুরিয়ে যাওয়ার পরে এই ধরণের দৃistence়তা স্টোরেজ ক্লিনার দ্বারা ধুয়ে নেওয়া যেতে পারে heard স্থান .. আমি যেমনটি আগে দেখিনি তেমন নিশ্চিত নই .. এটি সিরিয়ালাইজেশন এবং ডিসরিয়ালাইজেশনের সাহায্যে প্রায় কোনও কিছু সঞ্চয় করতে পারে ..
  3. একটি ডাটাবেসে সংরক্ষণ করা এটি ডেটাতে প্রচুর পরিমাণে সহায়ক যা কিছুটা জটিল। এবং আমি মনে করি এটি ডিস্ক ক্লিনার দ্বারা ধুয়ে যায় না কারণ এটি অ্যাপডাটাতে (অ্যান্ড্রয়েডের জন্য) সংরক্ষণ করা হয় .. এতে আপনার ডেটা কোনও এসকিউএল ডাটাবেসে সংরক্ষণ করা হয়। এর প্লাগইনটি এসকিউএফলাইট । আপনি যে ধরণের ডেটা রাখতে চান তা হ'ল ডেটাবেস দ্বারা প্রতিনিধিত্ব করা যায় এমন সমস্ত কিছুর মতো।

5

কয়েকটি অপশন আছে:

মুর: ডার্টের জন্য অধ্যবসায় গ্রন্থাগার

ফাইল পড়ুন এবং লিখুন

ঝাঁকুনির জন্য ভাগ করা পছন্দগুলি প্লাগইন

ঝাঁকুনির জন্য এসকিউলেট


0

আমি মনে করি আপনি যদি স্থানীয় স্টোরেজে প্রচুর পরিমাণে ডেটা সঞ্চয় করতে যান তবে আপনি স্কয়ারফ্লাইট লাইব্রেরি ব্যবহার করতে পারেন। এটি সেটআপ করা খুব সহজ এবং আমি ব্যক্তিগতভাবে কিছু পরীক্ষা প্রকল্পের জন্য ব্যবহার করেছি এবং এটি দুর্দান্ত কাজ করে।

https://github.com/tekartik/sqflite এটি একটি টিউটোরিয়াল - https://proandroiddev.com/flutter-bookshelf-app-part-2-personal-notes-and-datedia-integration-a3b47a84c57

আপনি যদি মেঘে ডেটা সঞ্চয় করতে চান তবে আপনি ফায়ারবেস ব্যবহার করতে পারেন। এটি গুগল দ্বারা সরবরাহ করা শক্ত পরিষেবা।

https://firebase.google.com/docs/flutter/setup


0

আপনি স্থানীয় স্টোরেজ ব্যবহার করতে পারেন

1- নির্ভরতা যুক্ত করুন pubspec.yaml( শেষের ভিত্তিতে সংস্করণটি পরিবর্তন করুন )

dependencies:
  ...
  localstorage: ^3.0.0

2- তারপরে নিম্নলিখিত কমান্ডটি চালান

flutter packages get

3- স্থানীয় দোকান আমদানি করুন:

import 'package:localstorage/localstorage.dart';

4- একটি উদাহরণ তৈরি করুন

class MainApp extends StatelessWidget {
  final LocalStorage storage = new LocalStorage('localstorage_app');
  ...
}

Lcoalstores এ আইটেম যুক্ত করুন :

void addItemsToLocalStorage() {
  storage.setItem('name', 'Abolfazl');
  storage.setItem('family', 'Roshanzamir');

  final info = json.encode({'name': 'Darush', 'family': 'Roshanzami'});
  storage.setItem('info', info);
}

Lcoalstores থেকে একটি আইটেম পান :

void getitemFromLocalStorage() {
  final name = storage.getItem('name'); // Abolfazl
  final family = storage.getItem('family'); // Roshanzamir
  
  Map<String, dynamic> info = json.decode(storage.getItem('info'));
  final info_name=info['name'];
  final info_family=info['family'];
}

লোকালস্টোর থেকে কোনও আইটেম মুছুন :

void removeItemFromLocalStorage() {
  storage.deleteItem('name');
  storage.deleteItem('family');
  storage.deleteItem('info');
}

0

অল্প পরিমাণ ডেটার জন্য আপনি SharedPreferences ব্যবহার করতে পারেন । তবে আপনার যদি বৃহত এবং জটিল ডেটা থাকে তবে আপনার তোলা বাজানো অ্যাপ্লিকেশনগুলিতে স্থানীয় স্টোরেজের জন্য স্ক্লাইট ডাটাবেস ব্যবহার করা উচিত ।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.