我正在尝试删除用户的 fcm 令牌,然后注销。
但我不能这样做,因为我收到了错误'Calling Kotlin suspend functions from Swift/Objective-C is currently supported only on main thread'
。
似乎挂起函数会以某种方式挂起下一个块?
repo.deleteToken 方法:
suspend fun deleteToken(token: String) {
val userId = appService.currentUser!!.id
realm.write {
var user = query<UserInfo>("_id = $0", userId).first().find()
if (user != null) {
user = findLatest(user)!!.also {
it.FCMToken.remove(token)
}
copyToRealm(user)
}
}
}
Run Code Online (Sandbox Code Playgroud)
和 repo.logout:
suspend fun doLogout() {
appService.currentUser?.logOut()
}
Run Code Online (Sandbox Code Playgroud)
我的注销方法删除令牌并尝试注销:
func doLogout(){
repo.deleteToken(token: myFCMToken){error in
isLoginShown = true
repo.doLogout(){error in
}
}
}
Run Code Online (Sandbox Code Playgroud)
当我注销时:*** Terminating app …