保存PFUser会导致sessionToken更新

问题描述

在我的项目中,我有一个PFUser的子类,称为FRUser。目前,我面临的问题是,一旦我修改用户并保存这些更改,例如使用以下代码,解析将更新会话令牌。

let user = FRUser.current()
user?.fullName = "Test"
user?.saveInBackground()

这里的问题是,我需要手动小心,不要与用户对象的保存一起调用CloudCode函数,因为如果这样做,我会遇到invalid session token 209错误。那是预期的行为吗?或者我该如何避免呢?

我在sashido.io上托管的iOS和Parse Server v3.6.0上使用的解析版本为1.19.0

自从每次启动后我都要更新FRUser.current()对象以来,在加载数据时遇到了很多无效的会话令牌错误,因此我开始使用以下代码来研究此问题。

class SessionController {
    static let shared = SessionController()
    var currentSessionToken: String?
    
    private init() {
        guard let st = FRUser.current()?.sessionToken else { currentSessionToken = nil; return }
        currentSessionToken = st
        startPolling()
    }
    
    private func startPolling() {
        dispatchQueue.main.asyncAfter(deadline: .Now() + 0.05) {
            guard let oldSt = self.currentSessionToken,let newSt = FRUser.current()?.sessionToken else { return }
            if oldSt != newSt {
                print("Did update session token!")
                print("Old Session token: \(oldSt)")
                print("New Session token: \(newSt)")
                self.currentSessionToken = newSt
            }
            self.startPolling()
        }
    }
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)