FIRDataSnapshot

@interface FIRDataSnapshot : NSObject

A FIRDataSnapshot contains data from a Firebase Database location. Any time you read Firebase data, you receive the data as a FIRDataSnapshot.

FIRDataSnapshots are passed to the blocks you attach with observeEventType:withBlock: or observeSingleEvent:withBlock:. They are efficiently-generated immutable copies of the data at a Firebase Database location. They can’t be modified and will never change. To modify data at a location, use a FIRDatabaseReference (e.g. with setValue:).

  • Gets a FIRDataSnapshot for the location at the specified relative path. The relative path can either be a simple child key (e.g. ‘fred’) or a deeper slash-separated path (e.g. ‘fred/name/first’). If the child location has no data, an empty FIRDataSnapshot is returned.

    Declaration

    Swift

    func childSnapshot(forPath childPathString: String) -> FIRDataSnapshot

    Objective-C

    - (nonnull FIRDataSnapshot *)childSnapshotForPath:
        (nonnull NSString *)childPathString;

    Parameters

    childPathString

    A relative path to the location of child data.

    Return Value

    The FIRDataSnapshot for the child location.

  • Return YES if the specified child exists.

    Declaration

    Swift

    func hasChild(_ childPathString: String) -> Bool

    Objective-C

    - (BOOL)hasChild:(nonnull NSString *)childPathString;

    Parameters

    childPathString

    A relative path to the location of a potential child.

    Return Value

    YES if data exists at the specified childPathString, else NO.

  • Return YES if the DataSnapshot has any children.

    Declaration

    Swift

    func hasChildren() -> Bool

    Objective-C

    - (BOOL)hasChildren;

    Return Value

    YES if this snapshot has any children, else NO.

  • Return YES if the DataSnapshot contains a non-null value.

    Declaration

    Swift

    func exists() -> Bool

    Objective-C

    - (BOOL)exists;

    Return Value

    YES if this snapshot contains a non-null value, else NO.

  • Returns the raw value at this location, coupled with any metadata, such as priority.

    Priorities, where they exist, are accessible under the .priority key in instances of NSDictionary. For leaf locations with priorities, the value will be under the .value key.

    Declaration

    Swift

    func valueInExportFormat() -> Any?

    Objective-C

    - (id _Nullable)valueInExportFormat;
  • Returns the contents of this data snapshot as native types.

    Data types returned: + NSDictionary + NSArray + NSNumber (also includes booleans) + NSString

    Declaration

    Swift

    var value: Any? { get }

    Objective-C

    @property (readonly, strong, nonatomic, nullable) id value;

    Return Value

    The data as a native object.

  • Gets the number of children for this DataSnapshot.

    Declaration

    Swift

    var childrenCount: UInt { get }

    Objective-C

    @property (readonly, nonatomic) NSUInteger childrenCount;

    Return Value

    An integer indicating the number of children.

  • ref

    Gets a FIRDatabaseReference for the location that this data came from.

    Declaration

    Swift

    var ref: FIRDatabaseReference { get }

    Objective-C

    @property (readonly, strong, nonatomic) FIRDatabaseReference *_Nonnull ref;

    Return Value

    A FIRDatabaseReference instance for the location of this data.

  • key

    The key of the location that generated this FIRDataSnapshot.

    Declaration

    Swift

    var key: String { get }

    Objective-C

    @property (readonly, strong, nonatomic) NSString *_Nonnull key;

    Return Value

    An NSString containing the key for the location of this FIRDataSnapshot.

  • An iterator for snapshots of the child nodes in this snapshot. You can use the native for..in syntax:

    for (FIRDataSnapshot* child in snapshot.children) { … }

    Declaration

    Swift

    var children: NSEnumerator { get }

    Objective-C

    @property (readonly, strong, nonatomic) NSEnumerator *_Nonnull children;

    Return Value

    An NSEnumerator of the children.

  • The priority of the data in this FIRDataSnapshot.

    Declaration

    Swift

    var priority: Any? { get }

    Objective-C

    @property (readonly, strong, nonatomic, nullable) id priority;

    Return Value

    The priority as a string, or nil if no priority was set.