FIRFirestore
@interface FIRFirestore : NSObject
FIRFirestore
represents a Firestore Database and is the entry point for all Firestore
operations.
-
Declaration
Objective-C
- (nonnull instancetype)init;
-
Creates, caches, and returns a
FIRFirestore
using the defaultFIRApp
. Each subsequent invocation returns the sameFIRFirestore
object.Declaration
Swift
class func firestore() -> Self
Objective-C
+ (nonnull instancetype)firestore;
Return Value
The
FIRFirestore
instance. -
Creates, caches, and returns a
FIRFirestore
object for the specified app. Each subsequent invocation returns the sameFIRFirestore
object.Declaration
Swift
class func firestore(app: FIRApp) -> Self
Objective-C
+ (nonnull instancetype)firestoreForApp:(nonnull FIRApp *)app;
Parameters
app
The
FIRApp
instance to use for authentication and as a source of the Google Cloud Project ID for your Firestore Database. If you want the default instance, you should explicitly set it to[FIRApp defaultApp]
.Return Value
The
FIRFirestore
instance. -
Custom settings used to configure this
FIRFirestore
object.Declaration
Swift
@NSCopying var settings: FIRFirestoreSettings { get set }
Objective-C
@property (readwrite, copy, nonatomic) FIRFirestoreSettings *_Nonnull settings;
-
The Firebase App associated with this Firestore instance.
Declaration
Swift
var app: FIRApp { get }
Objective-C
@property (readonly, strong, nonatomic) FIRApp *_Nonnull app;
-
Gets a
FIRCollectionReference
referring to the collection at the specified path within the database.Declaration
Swift
func collection(_ collectionPath: String) -> FIRCollectionReference
Objective-C
- (nonnull FIRCollectionReference *)collectionWithPath: (nonnull NSString *)collectionPath;
Parameters
collectionPath
The slash-separated path of the collection for which to get a
FIRCollectionReference
.Return Value
The
FIRCollectionReference
at the specified collectionPath. -
Gets a
FIRDocumentReference
referring to the document at the specified path within the database.Declaration
Swift
func document(_ documentPath: String) -> FIRDocumentReference
Objective-C
- (nonnull FIRDocumentReference *)documentWithPath: (nonnull NSString *)documentPath;
Parameters
documentPath
The slash-separated path of the document for which to get a
FIRDocumentReference
.Return Value
The
FIRDocumentReference
for the specified documentPath.
-
Executes the given updateBlock and then attempts to commit the changes applied within an atomic transaction.
In the updateBlock, a set of reads and writes can be performed atomically using the
FIRTransaction
object passed to the block. After the updateBlock is run, Firestore will attempt to apply the changes to the server. If any of the data read has been modified outside of this transaction since being read, then the transaction will be retried by executing the updateBlock again. If the transaction still fails after 5 retries, then the transaction will fail.Since the updateBlock may be executed multiple times, it should avoiding doing anything that would cause side effects.
Any value maybe be returned from the updateBlock. If the transaction is successfully committed, then the completion block will be passed that value. The updateBlock also has an
NSError
out parameter. If this is set, then the transaction will not attempt to commit, and the given error will be passed to the completion block.The
FIRTransaction
object passed to the updateBlock contains methods for accessing documents and collections. Unlike other firestore access, data accessed with the transaction will not reflect local changes that have not been committed. For this reason, it is required that all reads are performed before any writes. Transactions must be performed while online. Otherwise, reads will fail, the final commit will fail, and the completion block will return an error.Declaration
Swift
func runTransaction(_ updateBlock: @escaping (FIRTransaction, NSErrorPointer) -> Any?, completion: @escaping (Any?, Error?) -> Void)
Objective-C
- (void)runTransactionWithBlock: (nonnull id _Nullable (^)(FIRTransaction *_Nonnull, NSError *_Nullable *_Nullable))updateBlock completion: (nonnull void (^)(id _Nullable, NSError *_Nullable))completion;
Parameters
updateBlock
The block to execute within the transaction context.
completion
The block to call with the result or error of the transaction. This block will run even if the client is offline, unless the process is killed.
-
Creates a write batch, used for performing multiple writes as a single atomic operation.
Unlike transactions, write batches are persisted offline and therefore are preferable when you don’t need to condition your writes on read data.
-
Enables or disables logging from the Firestore client.
Declaration
Swift
class func enableLogging(_ logging: Bool)
Objective-C
+ (void)enableLogging:(BOOL)logging;
-
Re-enables usage of the network by this Firestore instance after a prior call to
disableNetworkWithCompletion
. Completion block, if provided, will be called once network uasge has been enabled.Declaration
Swift
func enableNetwork(completion: ((Error?) -> Void)? = nil)
Objective-C
- (void)enableNetworkWithCompletion: (nullable void (^)(NSError *_Nullable))completion;
-
Disables usage of the network by this Firestore instance. It can be re-enabled by via
enableNetworkWithCompletion
. While the network is disabled, any snapshot listeners or get calls will return results from cache and any write operations will be queued until the network is restored. The completion block, if provided, will be called once network usage has been disabled.Declaration
Swift
func disableNetwork(completion: ((Error?) -> Void)? = nil)
Objective-C
- (void)disableNetworkWithCompletion: (nullable void (^)(NSError *_Nullable))completion;