user

public extension User
extension User: ObservableObject
  • 将当前经过身份验证的用户与新身份关联,其中该身份由指定为参数的档案定义。 仅当此User当前已通过创建它的客户端进行身份验证时,此操作才会成功。 成功后,将返回一个带有新链接凭证的新用户。 @param凭证用于将用户链接到新身份的Credentials 。 @completion 最终返回带有用户数据的Result.success(User)Result.failure(Error)的完成。

    声明

    Swift

    @preconcurrency
    func linkUser(credentials: Credentials, _ completion: @escaping @Sendable (Result<User, Error>) -> Void)
  • 将当前经过身份验证的用户与新身份关联,其中该身份由指定为参数的档案定义。 仅当此User当前已通过创建它的客户端进行身份验证时,此操作才会成功。 成功后,将返回一个带有新链接凭证的新用户。 @param凭证用于将用户链接到新身份的Credentials 。 @returns 最终返回Result.successError的发布者。

    声明

    Swift

    @available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
    func linkUser(credentials: Credentials) -> Future<User, Error>
  • linkUser(credentials:) 异步(Asynchronous)

    将当前经过身份验证的用户与新身份关联,其中该身份由指定为参数的档案定义。 仅当此User当前已通过创建它的客户端进行身份验证时,此操作才会成功。 成功后,将返回一个带有新链接凭证的新用户。

    声明

    Swift

    @available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
    func linkUser(credentials: Credentials) async throws -> User

    参数

    credentials

    用于将用户与新身份关联的Credentials

    返回值

    成功更新其身份后的User

  • 创建同步配置实例。

    声明

    Swift

    @preconcurrency
    func configuration<T: BSON>(partitionValue: T,
                                clientResetMode: ClientResetMode = .recoverUnsyncedChanges(beforeReset: nil, afterReset: nil),
                                cancelAsyncOpenOnNonFatalErrors: Bool = false) -> Realm.Configuration

    参数

    partitionValue

    Realm 分区所依据的BSON值。

    clientResetMode

    确定客户端重置期间的文件恢复行为。 默认为.recoverUnsyncedChanges

    cancelAsyncOpenOnNonFatalErrors

    默认情况下,Realm.asyncOpen() 吞掉非致命连接错误,例如连接尝试超时,并简单地重试直到成功。 如果将其设置为true ,则错误将报告给回调,并且异步打开将被取消。

  • 创建同步配置实例。

    声明

    Swift

    @preconcurrency
    func configuration(partitionValue: AnyBSON,
                       clientResetMode: ClientResetMode = .recoverUnsyncedChanges(beforeReset: nil, afterReset: nil),
                       cancelAsyncOpenOnNonFatalErrors: Bool = false) -> Realm.Configuration

    参数

    partitionValue

    nil作为分区值。

    clientResetMode

    确定客户端重置期间的文件恢复行为。 默认为.recoverUnsyncedChanges

    cancelAsyncOpenOnNonFatalErrors

    默认情况下,Realm.asyncOpen() 吞掉非致命连接错误,例如连接尝试超时,并简单地重试直到成功。 如果将其设置为true ,则错误将报告给回调,并且异步打开将被取消。

  • 用户的自定义数据。 这是在 Atlas App Services 应用程序中配置的。

    声明

    Swift

    var customData: Document { get }
  • 用于与远程 MongoDB 实例交互的客户端

    声明

    Swift

    func mongoClient(_ serviceName: String) -> MongoClient

    参数

    serviceName

    MongoDB 服务的名称

    返回值

    用于与远程 MongoDB 服务交互的MongoClient

  • 使用提供的名称和参数调用 Atlas App Services 函数。

    user.functions.sum([1, 2, 3, 4, 5]) { sum, error in
        guard case let .int64(value) = sum else {
            print(error?.localizedDescription)
        }
    
        assert(value == 15)
    }
    

    动态成员名称(上例中为sum )与函数名称直接关联。 第一个参数是要提供给函数的BSONArray参数。 第二个也是最后一个参数是函数调用完成时要调用的完成处理程序。 此处理程序在非主全局DispatchQueue上执行。

    声明

    Swift

    var functions: Functions { get }
  • 刷新用户的自定义数据。 这实际上会刷新用户的身份验证会话。 @returns A publisher that eventually return Dictionary with user’s data or Error.

    声明

    Swift

    func refreshCustomData() -> Future<[AnyHashable : Any], Error>
  • 删除用户 这将注销并销毁与该用户相关的会话。 如果未找到用户或已删除用户,则完成区块将返回错误。 @returns 最终返回Result.successError的发布者。

    声明

    Swift

    func remove() -> Future<Void, Error>
  • 注销当前用户。如果用户是匿名用户,则状态将设置为Removed ;如果通过用户名/密码或第三方身份验证客户端进行身份验证,则状态将设置为LoggedOut /如果注销请求失败,此方法仍将清除本地身份验证状态。 @returns 最终返回Result.successError的发布者。

    声明

    Swift

    func logOut() -> Future<Void, Error>
  • 从 Atlas App Services App 中永久删除该用户。用户状态将设置为Removed ,会话将被销毁。 如果删除请求失败,则不会更改本地身份验证状态。 @returns 最终返回Result.successError的发布者。

    声明

    Swift

    func delete() -> Future<Void, Error>
  • 每次用户更改时发出 Void 的发布者。

    尽管有这个名称,但它实际上是在用户更改发出的。

    声明

    Swift

    public var objectWillChange: AnyPublisher<UserPublisher.Output, UserPublisher.Failure> { get }
  • 刷新用户的自定义数据。 这实际上会刷新用户的身份验证会话。 @completion 最终返回带有用户数据的Result.success(Dictionary)Result.failure(Error)的完成。

    声明

    Swift

    @preconcurrency
    func refreshCustomData(_ completion: @escaping @Sendable (Result<[AnyHashable : Any], Error>) -> Void)
  • refreshCustomData() 异步(Asynchronous)

    刷新用户的自定义数据。 这实际上会刷新用户的身份验证会话。

    声明

    Swift

    @available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
    @discardableResult
    func refreshCustomData() async throws -> Document
  • 创建 Flexible Sync 配置实例,可用于打开支持 Flexible Sync 的 Realm。

    无法在同一应用中组合使用 Flexible Sync 和分区同步,这意味着如果您使用 Flexible Sync 配置打开域,则将无法使用 PBS 配置打开域,反之亦然。

    声明

    Swift

    public func flexibleSyncConfiguration(clientResetMode: ClientResetMode = .recoverUnsyncedChanges(),
                                          cancelAsyncOpenOnNonFatalErrors: Bool = false) -> Realm.Configuration

    参数

    clientResetMode

    确定客户端重置期间的文件恢复行为。 默认为.recoverUnsyncedChanges

    cancelAsyncOpenOnNonFatalErrors

    默认情况下,Realm.asyncOpen() 吞掉非致命连接错误,例如连接尝试超时,并简单地重试直到成功。 如果将其设置为true ,则错误将报告给回调,并且异步打开将被取消。

  • 创建 Flexible Sync 配置实例,可用于打开支持 Flexible Sync 的 Realm。

    无法在同一应用中组合使用 Flexible Sync 和分区同步,这意味着如果您使用 Flexible Sync 配置打开域,则将无法使用 PBS 配置打开域,反之亦然。

    使用rerunOnOpen涵盖了要重新运行动态查询的情况,例如时间范围。

    var config = user.flexibleSyncConfiguration(initialSubscriptions: { subscriptions in
        subscriptions.append(QuerySubscription<User>() {
            $0.birthdate < Date() && $0.birthdate > Calendar.current.date(byAdding: .year, value: 21)!
        })
    }, rerunOnOpen: true)
    

    声明

    Swift

    @preconcurrency
    public func flexibleSyncConfiguration(clientResetMode: ClientResetMode = .recoverUnsyncedChanges(),
                                          cancelAsyncOpenOnNonFatalErrors: Bool = false,
                                          initialSubscriptions: @escaping @Sendable (SyncSubscriptionSet) -> Void,
                                          rerunOnOpen: Bool = false) -> Realm.Configuration

    参数

    clientResetMode

    确定客户端重置期间的文件恢复行为。 默认为.recoverUnsyncedChanges

    initialSubscriptions

    一个接收订阅集实例的区块,可用于添加初始订阅集,该初始订阅集将在首次打开 Realm 时执行。

    rerunOnOpen

    如果为 true,则允许在每次应用初创企业时运行指定的初始订阅集。这可用于重新运行动态时间范围和其他需要重新计算静态变量的查询。

    cancelAsyncOpenOnNonFatalErrors

    默认情况下,Realm.asyncOpen() 吞掉非致命连接错误,例如连接尝试超时,并简单地重试直到成功。 如果将其设置为true ,则错误将报告给回调,并且异步打开将被取消。