سؤال

سؤالي هو متابعة ل هذا الموضوع. أحب بساطة وأداء Firebase مما رأيته حتى الآن.

كما أفهم ، يقوم Firebase.js بمزامنة لقطات البيانات من الخادم إلى كائن في ذاكرة JavaScript. ومع ذلك ، لا توجد حاليًا أي وظيفة لتخزين هذه البيانات على القرص.

نتيجة ل:

  1. يتعين على التطبيقات الحصول على اتصال عند بدء التشغيل ، وبالتالي لا يوجد وصول حقيقي دون اتصال.
  2. يضيع النطاق الترددي في كل مرة يبدأ فيها التطبيق عن طريق إعادة نقل جميع البيانات السابقة.

نظرًا لأن بيانات اللقطة تجلس في الذاكرة ككائن JavaScript ، فيجب أن يكون تافهة تمامًا لتسلسلها كـ JSON وحفظها إلى LocalStorage ، بحيث يمكن تحميل حالة التطبيق الدقيقة في المرة القادمة التي يتم فيها بدء التطبيق عبر الإنترنت أم لا. ولكن نظرًا لأن رمز Firebase.js يتم تعويضه ومُخفي ، فليس لدي فكرة عن مكان النظر.

Pouchdb يتعامل مع هذا بشكل جيد للغاية على خلفية Couchdb. (لكنه يفتقر إلى وقت الاستجابة السريع وبساطة Firebase.)

لذلك أسئلتي هي:

1. ما هي البيانات التي سأحتاجها للتسلسل لحفظ لقطة إلى LocalStorage؟ كيف يمكنني بعد ذلك تحميل هذا مرة أخرى إلى Firebase عندما يبدأ التطبيق؟

2. أين يمكنني تنزيل رمز مصدر DEV الأصلي غير المصقول لـ Firebase.js؟

(بالمناسبة ، هناك ميزتان من شأنه أن تساعد Firebase على تفجير المنافسة من الماء: التخزين المؤقت في وضع عدم الاتصال والخريطة.).

هل كانت مفيدة؟

المحلول

التخزين المؤقت في وضع عدم الاتصال والخريطة تقلل من وظائف كلاهما قيد التطوير. The Firebase.js المصدر متاح هنا ل dev وتصحيح الأخطاء.

يمكنك تسلسل لقطة محليا باستخدام ExportVal للحفاظ على جميع بيانات الأولوية. إذا كنت لا تستخدم الأولويات ، فستفعل قيمة بسيطة:

var fb = new Firebase(URL);
fb.once('value', function(snapshot) {
   console.log('values with priorities', snapshot.exportVal());

   console.log('values without priorities', snapshot.val());
});

في وقت لاحق ، إذا كان Firebase غير متصل (الاستخدام .info/متصل للمساعدة في تحديد ذلك) عند تحميل تطبيقك ، يمكنك الاتصال .تعيين() لإعادة هذه البيانات إلى قاعدة الإطفاء المحلية. عندما/إذا جاء Firebase عبر الإنترنت ، سيتم مزامنتها.

ومع ذلك ، هذا مناسب حقًا فقط للبيانات الثابتة التي سيقوم شخص واحد فقط بالوصول والتغيير. ضع في اعتبارك ، على سبيل المثال ، التداعيات إذا قمت بتنزيل البيانات ، واحتفظ بها محليًا لمدة أسبوع ، وتم تعديلها من قبل العديد من المستخدمين الآخرين خلال ذلك الوقت ، ثم أقوم بتحميل تطبيقي في وضع عدم الاتصال ، وأجري تغييرًا بسيطًا ، ثم يأتي عبر الإنترنت. من شأن التغييرات التي لا معنى لها أن تهب كل العمل الذي تم بينهما.

هناك الكثير من الطرق للتعامل مع هذا القرار الصالح ، باستخدام قواعد الأمان وتحديث العدادات/الطوابع الزمنية للكشف عن البيانات التي لا معنى لها ومنع الانحدارات-لكن هذه ليست علاقة بسيطة وتحتاج إلى دراسة عميقة قبل أن تتجه إلى هذا الطريق.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top