DataSnapshot class

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

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

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

Signature:

export declare class DataSnapshot 

أماكن إقامة

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

الطُرق

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

مفتاح DataSnapshot

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

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

Signature:

get key(): string | null;

DataSnapshot.priority

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

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

Signature:

get priority(): string | number | null;

مرجع DataSnapshot

مكان لقطة البيانات هذه.

Signature:

readonly ref: DatabaseReference;

DataSnapshot.size

تعرض عدد الخصائص الفرعية لهذه DataSnapshot.

Signature:

get size(): number;

DataSnapshot.child()

الحصول على DataSnapshot آخر للموقع الجغرافي في المسار النسبي المحدّد

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

Signature:

child(path: string): DataSnapshot;

المَعلمات

المعلمة النوع الوصف
المسار السلسلة يشير ذلك المصطلح إلى مسار نسبي إلى موقع البيانات الفرعية.

المرتجعات:

نبذة عن البيانات

DataSnapshot.exists()

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

Signature:

exists(): boolean;

المرتجعات:

قيمة منطقية

DataSnapshot.exportVal()

تصدِّر هذه البيانات كل المحتوى في DataSnapshot ككائن JavaScript.

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

Signature:

exportVal(): any;

المرتجعات:

أي

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

DataSnapshot.for المنسدلة()

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

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

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

Signature:

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

المَعلمات

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

المرتجعات:

قيمة منطقية

true إذا تم إلغاء التعداد بسبب رجوع معاودة الاتصال إلى true.

DataSnapshot.hasChild()

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

Signature:

hasChild(path: string): boolean;

المَعلمات

المعلمة النوع الوصف
المسار السلسلة مسار نسبي للموقع الجغرافي لطفل محتمل.

المرتجعات:

قيمة منطقية

true إذا كانت البيانات متوفّرة في المسار الفرعي المحدّد غير ذلك false.

DataSnapshot.hasChildren()

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

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

Signature:

hasChildren(): boolean;

المرتجعات:

قيمة منطقية

true إذا كان لهذه اللقطة أي عناصر ثانوية؛ else false.

DataSnapshot.toJSON()

تعرض تمثيلاً بتنسيق JSON لهذا الكائن.

Signature:

toJSON(): object | null;

المرتجعات:

كائن | فارغ

DataSnapshot.val()

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

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

Signature:

val(): any;

المرتجعات:

أي

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