Type Aliases

The following type aliases are available globally.

Aliases

  • PropertyType is an enum describing all property types supported in Realm models.

    For more information, see Object Models and Schemas.

    Primitive types

    • Int
    • Bool
    • Float
    • Double

    Object types

    Relationships: Array (in Swift, List) and Object types

  • An opaque token which is returned from methods which subscribe to changes to a Realm.

  • An object representing the Realm App configuration

    See

    RLMAppConfiguration
  • An object representing a client which performs network calls on Realm Cloud user api keys

    See

    RLMAPIKeyAuth
  • An object representing a client which performs network calls on Realm Cloud user registration & password functions

    See

    RLMEmailPasswordAuth
  • An object representing the social profile of a User.

  • A block type used to report an error

  • An object representing a client which performs network calls on Realm Cloud for registering devices to push notifications

    See

    see RLMPushClient
  • An object which is used within UserAPIKeyProviderClient

  • App

    The App has the fundamental set of methods for communicating with a Realm application backend. This interface provides access to login and authentication.

  • AsymmetricObject is a base class used to define asymmetric Realm objects.

    Asymmetric objects can only be created using the create(_ type:, value:) function, and cannot be added, removed or queried. When created, asymmetric objects will be synced unidirectionally to the MongoDB database and cannot be accessed locally.

    Linking an asymmetric object within an Object is not allowed and will throw an error.

    The property types supported on AsymmetricObject are the same as for Object, except for that asymmetric objects can only link to embedded objects, so Object and List<Object> properties are not supported (EmbeddedObject and List<EmbeddedObject> are).

    class Person: AsymmetricObject {
        @Persisted(primaryKey: true) var _id: ObjectId
        @Persisted var name: String
        @Persisted var age: Int
    }
    
  • A Dictionary object representing a BSON document.

  • MaxKey will always be the greatest value when comparing to other BSON types

  • MinKey will always be the smallest value when comparing to other BSON types

  • EmbeddedObject is a base class used to define embedded Realm model objects.

    Embedded objects work similarly to normal objects, but are owned by a single parent Object (which itself may be embedded). Unlike normal top-level objects, embedded objects cannot be directly created in or added to a Realm. Instead, they can only be created as part of a parent object, or by assigning an unmanaged object to a parent object’s property. Embedded objects are automatically deleted when the parent object is deleted or when the parent is modified to no longer point at the embedded object, either by reassigning an Object property or by removing the embedded object from the List containing it.

    Embedded objects can only ever have a single parent object which links to them, and attempting to link to an existing managed embedded object will throw an exception.

    The property types supported on EmbeddedObject are the same as for Object, except for that embedded objects cannot link to top-level objects, so Object and List<Object> properties are not supported (EmbeddedObject and List<EmbeddedObject> are).

    Embedded objects cannot have primary keys or indexed properties.

    class Owner: Object {
        @Persisted var name: String
        @Persisted var dogs: List<Dog>
    }
    class Dog: EmbeddedObject {
        @Persisted var name: String
        @Persisted var adopted: Bool
        @Persisted(originProperty: "dogs") var owner: LinkingObjects<Owner>
    }
    
  • The type of a migration block used to migrate a Realm.

  • An object class used during migrations.

  • A block type which provides both the old and new versions of an object in the Realm. Object properties can only be accessed using subscripting.

  • Migration instances encapsulate information intended to facilitate a schema migration.

    A Migration instance is passed into a user-defined MigrationBlock block when updating the version of a Realm. This instance provides access to the old and new database schemas, the objects in the Realm, and provides functionality for modifying the Realm during the migration.

  • The MongoClient enables reading and writing on a MongoDB database via the Realm Cloud service.

    It provides access to instances of MongoDatabase, which in turn provide access to specific MongoCollections that hold your data.

    Note

    Before you can read or write data, a user must log in.

  • The MongoDatabase represents a MongoDB database, which holds a group of collections that contain your data.

    It can be retrieved from the MongoClient.

    Use it to get MongoCollections for reading and writing data.

    Note

    Before you can read or write data, a user must log in`.

  • Options to use when executing a find command on a MongoCollection.

  • Options to use when executing a findOneAndUpdate, findOneAndReplace, or findOneAndDelete command on a MongoCollection.

  • The result of an updateOne or updateMany operation a MongoCollection.

  • Block which returns Result.success(DocumentId) on a successful insert or Result.failure(error)

  • Block which returns Result.success([ObjectId]) on a successful insertMany or Result.failure(error)

  • Block which returns Result.success([Document]) on a successful find operation or Result.failure(error)

  • Block which returns Result.success(Document?) on a successful findOne operation or Result.failure(error)

  • Block which returns Result.success(Int) on a successful count operation or Result.failure(error)

  • Block which returns Result.success(UpdateResult) on a successful update operation or Result.failure(error)

  • The MongoCollection represents a MongoDB collection.

    You can get an instance from a MongoDatabase.

    Create, read, update, and delete methods are available.

    Operations against the Realm Cloud server are performed asynchronously.

    Note

    Before you can read or write data, a user must log in.

  • Acts as a middleman and processes events with WatchStream

  • Object is a class used to define Realm model objects.

    In Realm you define your model classes by subclassing Object and adding properties to be managed. You then instantiate and use your custom subclasses instead of using the Object class directly.

    class Dog: Object {
        @Persisted var name: String
        @Persisted var adopted: Bool
        @Persisted var siblings: List<Dog>
    }
    

    Supported property types

    • String
    • Int, Int8, Int16, Int32, Int64
    • Float
    • Double
    • Bool
    • Date
    • Data
    • Decimal128
    • ObjectId
    • UUID
    • AnyRealmValue
    • Any RawRepresentable enum whose raw type is a legal property type. Enums must explicitly be marked as conforming to PersistableEnum.
    • Object subclasses, to model many-to-one relationships
    • EmbeddedObject subclasses, to model owning one-to-one relationships

    All of the types above may also be Optional, with the exception of AnyRealmValue. Object and EmbeddedObject subclasses must be Optional.

    In addition to individual values, three different collection types are supported:

    • List<Element>: an ordered mutable collection similar to Array.
    • MutableSet<Element>: an unordered uniquing collection similar to Set.
    • Map<String, Element>: an unordered key-value collection similar to Dictionary.

    The Element type of collections may be any of the supported non-collection property types listed above. Collections themselves may not be Optional, but the values inside them may be, except for lists and sets of Object or EmbeddedObject subclasses.

    Finally, LinkingObjects properties can be used to track which objects link to this one.

    All properties which should be stored by Realm must be explicitly marked with @Persisted. Any properties not marked with @Persisted will be ignored entirely by Realm, and may be of any type.

    Querying

    You can retrieve all objects of a given type from a Realm by calling the objects(_:) instance method.

    Relationships

    See our Swift guide for more details.

  • The Id of the asynchronous transaction.

Notifications

  • The type of a block to run for notification purposes when the data in a Realm is modified.

  • An object representing an Atlas App Services user.

    See

    RLMUser
  • A manager which configures and manages Atlas App Services synchronization-related functionality.

    See

    RLMSyncManager
  • Options for configuring timeouts and intervals in the sync client.

    See

    RLMSyncTimeoutOptions
  • A session object which represents communication between the client and server for a specific Realm.

    See

    RLMSyncSession
  • A closure type for a closure which can be set on the SyncManager to allow errors to be reported to the application.

    See

    RLMSyncErrorReportingBlock
  • A closure type for a closure which is used by certain APIs to asynchronously return a SyncUser object to the application.

    See

    RLMUserCompletionBlock
  • An error associated with the SDK’s synchronization functionality. All errors reported by an error handler registered on the SyncManager are of this type.

    See

    RLMSyncError
  • An error which occurred when making a request to Atlas App Services. Most User and App functions which can fail report errors of this type.

  • An enum which can be used to specify the level of logging.

    See

    RLMSyncLogLevel
  • A data type whose values represent different authentication providers that can be used with Atlas App Services.

    See

    RLMIdentityProvider