یک DataSnapshot
حاوی داده هایی از یک مکان پایگاه داده است.
هر زمان که داده ها را از پایگاه داده می خوانید، داده ها را به صورت DataSnapshot
دریافت می کنید . یک DataSnapshot
به تماسهای رویدادی ارسال میشود که با on()
یا once()
پیوست میکنید. . می توانید با فراخوانی متد 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 حاوی دادهای باشد، true برمیگرداند. کمی کارآمدتر از استفاده از snapshot.val() !== null است. | |
exportVal() | کل محتویات DataSnapshot را به عنوان یک شی جاوا اسکریپت صادر می کند. متد exportVal() مشابه val() است، با این تفاوت که اطلاعات اولویت بندی در آن گنجانده شده است (در صورت موجود بودن)، و برای تهیه نسخه پشتیبان از اطلاعات شما مناسب است. | |
برای هر (عمل) | فرزندان سطح بالا را در IteratedDataSnapshot بر می شمارد. به دلیل نحوه کار اشیاء جاوا اسکریپت، ترتیب دادهها در شی جاوا اسکریپت که توسط val() برگردانده میشود تضمینی برای مطابقت با ترتیب روی سرور یا ترتیب رویدادهای onChildAdded() نیست. اینجاست که forEach() به کار می آید. این تضمین می کند که فرزندان یک DataSnapshot به ترتیب درخواست آنها تکرار می شوند. اگر از روش صریح orderBy*() استفاده نشود، نتایج به ترتیب با کلید برگردانده می شوند (مگر اینکه از اولویت ها استفاده شود، در این صورت، نتایج بر اساس اولویت برگردانده می شوند). | |
hasChild (مسیر) | اگر مسیر فرزند مشخص شده دارای داده (غیر تهی) باشد، مقدار true را برمی گرداند. | |
hasChildren() | نشان می دهد که آیا DataSnapshot دارای ویژگی های فرزند غیر null است یا خیر. شما می توانید از hasChildren() برای تعیین اینکه آیا یک DataSnapshot دارای فرزند است یا خیر استفاده کنید. اگر اینطور است، می توانید آنها را با استفاده از forEach() برشمارید. اگر اینطور نیست، پس یا این عکس فوری حاوی یک مقدار اولیه است (که می تواند با val() بازیابی شود) یا خالی است (در این صورت، val() null را برمی گرداند. | |
toJSON() | نمایشی قابل سریالسازی با JSON از این شی را برمیگرداند. | |
val() | یک مقدار جاوا اسکریپت را از DataSnapshot استخراج می کند. بسته به داده های یک DataSnapshot ، متد val() ممکن است یک نوع اسکالر (رشته، عدد، یا بولی)، یک آرایه یا یک شی را برگرداند. همچنین ممکن است null را برگرداند که نشان می دهد 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
حاوی دادهای باشد، true برمیگرداند. کمی کارآمدتر از استفاده از snapshot.val() !== null
است .
امضا:
exists(): boolean;
برمی گرداند:
بولی
DataSnapshot.exportVal()
کل محتویات DataSnapshot را به عنوان یک شی جاوا اسکریپت صادر می کند.
متد exportVal()
مشابه val()
است. ، به جز اطلاعات اولویت بندی (در صورت وجود) گنجانده شده است، که آن را برای پشتیبان گیری از داده های شما مناسب می کند.
امضا:
exportVal(): any;
برمی گرداند:
هر
محتویات DataSnapshot به عنوان یک مقدار جاوا اسکریپت (شیء، آرایه، رشته، عدد، بولی یا null
).
DataSnapshot.forEach()
فرزندان سطح بالای IteratedDataSnapshot
را برمی شمارد .
به دلیل نحوه کار اشیاء جاوا اسکریپت، ترتیب داده ها در شی جاوا اسکریپت که توسط val()
برگردانده می شود تضمینی برای مطابقت با ترتیب روی سرور یا ترتیب رویدادهای onChildAdded()
نیست. اینجاست که forEach()
به کار می آید. این تضمین می کند که فرزندان یک DataSnapshot
به ترتیب درخواست آنها تکرار می شوند.
اگر از روش صریح orderBy*()
استفاده نشود، نتایج به ترتیب با کلید برگردانده می شوند (مگر اینکه از اولویت ها استفاده شود، در این صورت، نتایج بر اساس اولویت برگردانده می شوند).
امضا:
forEach(action: (child: IteratedDataSnapshot) => boolean | void): boolean;
مولفه های
پارامتر | تایپ کنید | شرح |
---|---|---|
عمل | (فرزند: IteratedDataSnapshot ) => بولی | خالی | تابعی که برای هر فرزند DataSnapshot فراخوانی می شود. برای لغو شمارش بیشتر، تماس برگشتی می تواند درست باشد. |
برمی گرداند:
بولی
درست است اگر شمارش به دلیل برگشت تماس شما به درستی لغو شد.
DataSnapshot.hasChild()
اگر مسیر فرزند مشخص شده دارای داده (غیر تهی) باشد، مقدار true را برمی گرداند.
امضا:
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()
یک مقدار جاوا اسکریپت را از DataSnapshot
استخراج می کند .
بسته به داده های یک DataSnapshot
متد val()
ممکن است یک نوع اسکالر (رشته، عدد یا بولی)، یک آرایه یا یک شی را برگرداند. همچنین ممکن است null را برگرداند که نشان می دهد DataSnapshot
خالی است (حاوی داده ای نیست).
امضا:
val(): any;
برمی گرداند:
هر
محتویات DataSnapshot به عنوان یک مقدار جاوا اسکریپت (شیء، آرایه، رشته، عدد، بولی یا null
).