DataSnapshot class

تحتوي DataSnapshot على بيانات من موقع قاعدة البيانات.

في أي وقت تقرأ فيه البيانات من قاعدة البيانات، فإنك تتلقى البيانات كـ DataSnapshot . يتم تمرير DataSnapshot إلى عمليات رد الاتصال للحدث التي ترفقها مع on() أو once() . يمكنك استخراج محتويات اللقطة ككائن JavaScript عن طريق استدعاء الأسلوب val() . وبدلاً من ذلك، يمكنك الانتقال إلى اللقطة عن طريق استدعاء التابع child() لإرجاع اللقطات الفرعية (والتي يمكنك بعد ذلك استدعاء val() عليها).

DataSnapshot هي نسخة من البيانات تم إنشاؤها بكفاءة وغير قابلة للتغيير في موقع قاعدة البيانات. لا يمكن تعديله ولن يتغير أبدًا (لتعديل البيانات، يمكنك دائمًا استدعاء الأسلوب set() على Reference مباشرةً).

إمضاء:

export declare class DataSnapshot 

ملكيات

ملكية الصفات التعريفية يكتب وصف
مفتاح سلسلة | باطل المفتاح (الجزء الأخير من المسار) لموقع DataSnapshot هذا. يعتبر الرمز الأخير في موقع قاعدة البيانات هو مفتاحه. على سبيل المثال، "ada" هو مفتاح العقدة /users/ada/. سيؤدي الوصول إلى المفتاح في أي DataSnapshot إلى إرجاع المفتاح للموقع الذي قام بإنشائه. ومع ذلك، فإن الوصول إلى المفتاح الموجود على عنوان URL الجذر لقاعدة البيانات سيعيد القيمة null .
أولوية سلسلة | رقم | باطل يحصل على قيمة الأولوية للبيانات الموجودة في DataSnapshot . لا تحتاج التطبيقات إلى استخدام الأولوية ولكن يمكنها طلب المجموعات حسب الخصائص العادية (راجع فرز البيانات وتصفيتها ).
المرجع مرجع قاعدة البيانات موقع DataSnapshot هذا.
مقاس رقم إرجاع عدد الخصائص الفرعية لـ DataSnapshot .

طُرق

طريقة الصفات التعريفية وصف
طفل (مسار) يحصل على DataSnapshot آخر للموقع على المسار النسبي المحدد. يؤدي تمرير مسار نسبي إلى child() التابع لـ DataSnapshot إلى إرجاع DataSnapshot آخر للموقع على المسار النسبي المحدد. يمكن أن يكون المسار النسبي إما اسمًا فرعيًا بسيطًا (على سبيل المثال، "ada") أو مسارًا أعمق مفصولاً بشرطة مائلة (على سبيل المثال، "ada/name/first"). إذا لم يكن الموقع الفرعي يحتوي على بيانات، فسيتم إرجاع DataSnapshot فارغًا (أي DataSnapshot قيمته null ).
موجود () يُرجع صحيحًا إذا كانت DataSnapshot تحتوي على أي بيانات. إنه أكثر كفاءة قليلًا من استخدام snapshot.val() !== null .
اكسبورتفال () تصدير محتويات DataSnapshot بالكامل ككائن JavaScript. تشبه طريقة exportVal() طريقة val() ، باستثناء تضمين معلومات الأولوية (إذا كانت متوفرة)، مما يجعلها مناسبة للنسخ الاحتياطي لبياناتك.
لكل (إجراء) تعداد الأطفال ذوي المستوى الأعلى في IteratedDataSnapshot . نظرًا للطريقة التي تعمل بها كائنات JavaScript، فإن ترتيب البيانات في كائن JavaScript الذي يتم إرجاعه بواسطة val() ليس مضمونًا لمطابقة الترتيب على الخادم ولا ترتيب أحداث onChildAdded() . هذا هو المكان الذي يكون فيه forEach() مفيدًا. فهو يضمن تكرار العناصر الفرعية لـ DataSnapshot بترتيب الاستعلام الخاص بهم. إذا لم يتم استخدام طريقة orderBy*() صريحة، فسيتم إرجاع النتائج مرتبة حسب المفتاح (ما لم يتم استخدام الأولويات، وفي هذه الحالة، يتم إرجاع النتائج حسب الأولوية).
هاتشايلد (المسار) يُرجع صحيحًا إذا كان المسار الفرعي المحدد يحتوي على بيانات (غير خالية).
لديها اطفال() إرجاع ما إذا كان DataSnapshot يحتوي على أي خصائص فرعية غير null أم لا. يمكنك استخدام hasChildren() لتحديد ما إذا كان DataSnapshot يحتوي على أي أطفال. إذا كان الأمر كذلك، فيمكنك تعدادها باستخدام forEach() . إذا لم يكن الأمر كذلك، فإما أن هذه اللقطة تحتوي على قيمة أولية (والتي يمكن استرجاعها باستخدام val() ) أو أنها فارغة (في هذه الحالة، val() ستعيد null ).
toJSON() تقوم بإرجاع تمثيل JSON قابل للتسلسل لهذا الكائن.
فال () يستخرج قيمة JavaScript من DataSnapshot . اعتمادًا على البيانات الموجودة في DataSnapshot ، قد يُرجع التابع val() ‎ نوعًا عدديًا (سلسلة أو رقمًا أو منطقيًا)، أو مصفوفة، أو كائنًا. قد يُرجع أيضًا قيمة فارغة، مما يشير إلى أن DataSnapshot فارغ (لا يحتوي على بيانات).

DataSnapshot.key

المفتاح (الجزء الأخير من المسار) لموقع DataSnapshot هذا .

يعتبر الرمز الأخير في موقع قاعدة البيانات هو مفتاحه. على سبيل المثال، "ada" هو مفتاح العقدة /users/ada/. سيؤدي الوصول إلى المفتاح في أي DataSnapshot إلى إرجاع المفتاح للموقع الذي قام بإنشائه. ومع ذلك، فإن الوصول إلى المفتاح الموجود على عنوان URL الجذر لقاعدة البيانات سيؤدي إلى إرجاع null .

إمضاء:

get key(): string | null;

DataSnapshot.priority

يحصل على قيمة الأولوية للبيانات الموجودة في DataSnapshot .

لا تحتاج التطبيقات إلى استخدام الأولوية ولكن يمكنها طلب المجموعات حسب الخصائص العادية (راجع فرز البيانات وتصفيتها ).

إمضاء:

get priority(): string | number | null;

DataSnapshot.ref

موقع DataSnapshot هذا.

إمضاء:

readonly ref: DatabaseReference;

DataSnapshot.size

إرجاع عدد الخصائص الفرعية لـ DataSnapshot هذه .

إمضاء:

get size(): number;

DataSnapshot.child()

يحصل على DataSnapshot آخر للموقع على المسار النسبي المحدد.

يؤدي تمرير مسار نسبي إلى child() التابع لـ DataSnapshot إلى إرجاع DataSnapshot آخر للموقع على المسار النسبي المحدد. يمكن أن يكون المسار النسبي إما اسمًا فرعيًا بسيطًا (على سبيل المثال، "ada") أو مسارًا أعمق مفصولاً بشرطة مائلة (على سبيل المثال، "ada/name/first"). إذا لم يكن الموقع الفرعي يحتوي على بيانات، فسيتم استخدام DataSnapshot فارغًا (أي DataSnapshot تكون قيمته null ) يتم إرجاع.

إمضاء:

child(path: string): DataSnapshot;

حدود

معامل يكتب وصف
طريق خيط مسار نسبي لموقع بيانات الطفل.

عائدات:

لقطة بيانات

DataSnapshot.exists()

يُرجع صحيحًا إذا كانت DataSnapshot تحتوي على أي بيانات. إنه أكثر كفاءة قليلًا من استخدام snapshot.val() !== null .

إمضاء:

exists(): boolean;

عائدات:

منطقية

DataSnapshot.exportVal()

تصدير محتويات DataSnapshot بالكامل ككائن JavaScript.

تشبه طريقة exportVal() طريقة val() ، باستثناء المعلومات ذات الأولوية المضمنة (إذا كانت متوفرة)، مما يجعلها مناسبة لإجراء نسخ احتياطي لبياناتك.

إمضاء:

exportVal(): any;

عائدات:

أي

محتويات DataSnapshot كقيمة JavaScript (كائن، أو صفيف، أو سلسلة، أو رقم، أو منطقية، أو null ).

DataSnapshot.forEach()

تعداد العناصر الفرعية ذات المستوى الأعلى في IteratedDataSnapshot .

نظرًا للطريقة التي تعمل بها كائنات JavaScript، فإن ترتيب البيانات في كائن JavaScript الذي يتم إرجاعه بواسطة val() ليس مضمونًا لمطابقة الترتيب على الخادم ولا ترتيب أحداث onChildAdded() . هذا هو المكان الذي يكون فيه forEach() مفيدًا. فهو يضمن تكرار العناصر الفرعية لـ DataSnapshot بترتيب الاستعلام الخاص بهم.

إذا لم يتم استخدام طريقة orderBy*() صريحة، فسيتم إرجاع النتائج مرتبة حسب المفتاح (ما لم يتم استخدام الأولويات، وفي هذه الحالة، يتم إرجاع النتائج حسب الأولوية).

إمضاء:

forEach(action: (child: IteratedDataSnapshot) => boolean | void): boolean;

حدود

معامل يكتب وصف
فعل (الطفل: IteratedDataSnapshot ) => منطقية | فارغ الوظيفة التي سيتم استدعاؤها لكل طفل DataSnapshot. يمكن أن يعود رد الاتصال صحيحًا لإلغاء المزيد من التعداد.

عائدات:

منطقية

صحيح إذا تم إلغاء التعداد بسبب إرجاع رد الاتصال الخاص بك صحيحًا.

DataSnapshot.hasChild()

يُرجع صحيحًا إذا كان المسار الفرعي المحدد يحتوي على بيانات (غير خالية).

إمضاء:

hasChild(path: string): boolean;

حدود

معامل يكتب وصف
طريق خيط مسار نسبي لموقع الطفل المحتمل.

عائدات:

منطقية

true إذا كانت البيانات موجودة في المسار الفرعي المحدد؛ آخر false .

DataSnapshot.hasChildren()

إرجاع ما إذا كان DataSnapshot يحتوي على أي خصائص فرعية غير null أم لا.

يمكنك استخدام hasChildren() لتحديد ما إذا كان DataSnapshot يحتوي على أي أطفال. إذا كان الأمر كذلك، يمكنك تعدادها باستخدام forEach() . إذا لم يكن الأمر كذلك، فإن هذه اللقطة تحتوي على قيمة أولية (والتي يمكن استرجاعها باستخدام val() ) أو أنه فارغ (وفي هذه الحالة، val() سيعود null ).

إمضاء:

hasChildren(): boolean;

عائدات:

منطقية

صحيح إذا كانت هذه اللقطة بها أي أطفال؛ آخر كاذبة.

DataSnapshot.toJSON()

تقوم بإرجاع تمثيل JSON قابل للتسلسل لهذا الكائن.

إمضاء:

toJSON(): object | null;

عائدات:

كائن | باطل

DataSnapshot.val()

يستخرج قيمة JavaScript من DataSnapshot .

اعتمادًا على البيانات الموجودة في DataSnapshot ، قد يُرجع التابع val() ‎ نوعًا عدديًا (سلسلة أو رقمًا أو منطقيًا) أو مصفوفة أو كائنًا. قد يُرجع أيضًا قيمة فارغة، مما يشير إلى أن DataSnapshot فارغ (لا يحتوي على بيانات).

إمضاء:

val(): any;

عائدات:

أي

محتويات DataSnapshot كقيمة JavaScript (كائن، أو صفيف، أو سلسلة، أو رقم، أو منطقية، أو null ).