user
-
将当前经过身份验证的用户与新身份关联,其中该身份由指定为参数的档案定义。 仅当此
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.success
或Error
的发布者。声明
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 orError
.声明
Swift
func refreshCustomData() -> Future<[AnyHashable : Any], Error>
-
删除用户 这将注销并销毁与该用户相关的会话。 如果未找到用户或已删除用户,则完成区块将返回错误。 @returns 最终返回
Result.success
或Error
的发布者。声明
Swift
func remove() -> Future<Void, Error>
-
注销当前用户。如果用户是匿名用户,则状态将设置为
Removed
;如果通过用户名/密码或第三方身份验证客户端进行身份验证,则状态将设置为LoggedOut
/如果注销请求失败,此方法仍将清除本地身份验证状态。 @returns 最终返回Result.success
或Error
的发布者。声明
Swift
func logOut() -> Future<Void, Error>
-
从 Atlas App Services App 中永久删除该用户。用户状态将设置为
Removed
,会话将被销毁。 如果删除请求失败,则不会更改本地身份验证状态。 @returns 最终返回Result.success
或Error
的发布者。声明
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
,则错误将报告给回调,并且异步打开将被取消。 -
flexibleSyncConfiguration(clientResetMode:
cancelAsyncOpenOnNonFatalErrors: initialSubscriptions: rerunOnOpen: ) 创建 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
,则错误将报告给回调,并且异步打开将被取消。