Parse (iOS):除非用户已通过登录或注册进行身份验证,否则无法删除用户

Posted

技术标签:

【中文标题】Parse (iOS):除非用户已通过登录或注册进行身份验证,否则无法删除用户【英文标题】:Parse (iOS): User cannot be deleted unless they have been authenticated via logIn or signUp 【发布时间】:2015-01-27 23:06:20 【问题描述】:

我仅在使用 saveEventually (ios 8) 时试验此错误,并且我正在修改的对象 不是 PFUser

var myObj = PFObject(className: "MyClass") 

myObj["val"] = 100

myObj.saveEventually()

'NSInternalInconsistencyException', reason: 'User cannot be deleted unless they have been authenticated via logIn or signUp'
*** First throw call stack:
(
    0   CoreFoundation                      0x0000000107182f35 __exceptionPreprocess + 165
    1   libobjc.A.dylib                     0x0000000109510bb7 objc_exception_throw + 45
    2   CoreFoundation                      0x0000000107182e6d +[NSException raise:format:] + 205
    3   AAA                              0x0000000105a7a85c -[PFUser(Private) checkDeleteParams] + 71
    4   AAA                              0x0000000105a3b6e9 -[PFObject(Private) _constructDeleteCommand:sessionToken:] + 81
    5   AAA                              0x0000000105a45c5c -[PFPinningEventuallyQueue _commandWithIdentifier:error:] + 147
    6   AAA                              0x0000000105a71b7b -[PFEventuallyQueue _runCommandsWithRetriesCount:] + 951
    7   libdispatch.dylib                   0x0000000109cb57f4 _dispatch_client_callout + 8
    8   libdispatch.dylib                   0x0000000109cac09a _dispatch_source_latch_and_call + 852
    9   libdispatch.dylib                   0x0000000109ca46d2 _dispatch_source_invoke + 412
    10  libdispatch.dylib                   0x0000000109c9d9ae _dispatch_queue_drain + 1045
    11  libdispatch.dylib                   0x0000000109c9d432 _dispatch_queue_invoke + 235
    12  libdispatch.dylib                   0x0000000109c9ffc1 _dispatch_root_queue_drain + 685
    13  libdispatch.dylib                   0x0000000109ca15d9 _dispatch_worker_thread3 + 111
    14  libsystem_pthread.dylib             0x000000010a039637 _pthread_wqthread + 729
    15  libsystem_pthread.dylib             0x000000010a03740d start_wqthread + 13
)
libc++abi.dylib: terminating with uncaught exception of type NSException

如果我正在使用,则相同:

myObj.saveEventually(success: Bool!, error: NSError!) -> Void in

错误不是 nil 也没有任何东西,saveEventually 只是崩溃了。

但是如果我只使用 saveInBackgroundWithBlock 或 save() 就可以了...

有什么想法吗?

我完全确定昨天还在工作,我对项目中的几乎所有内容都使用了 saveEventually,但该错误对我来说没有意义,因为我没有修改 PFUser。使用最后一个 SDK。

提前致谢!

【问题讨论】:

您是否在表中的某一列中引用了_User 表? 没有 @ChristianWoerz ,根本没有参考。正如我所说,如果我只使用 save 或 saveInBackground 工作正常,所以这是一个不同的问题:-(有什么想法吗? 【参考方案1】:

好的...解决方案很简单:

在模拟器中:重置内容和设置 在 XCode 中:产品 -> 清理 && 构建 关闭 Xcode

rm -rf ~/library/Developer/Xcode/DerivedData/

打开 XCode

这个错误肯定看起来像一个错误或类似的东西,但可能是某个 Cache 或 ...whatever... 在某个地方。

希望对你有帮助

干杯

【讨论】:

以上是关于Parse (iOS):除非用户已通过登录或注册进行身份验证,否则无法删除用户的主要内容,如果未能解决你的问题,请参考以下文章

如何制作 parse.com 注销按钮以将我带到另一个让我登录或注册的活动?

通过 Facebook iOS Parse.com 登录用户

将 Facebook 登录与 Parse 集成

iOS:使用 Parse 获取 Facebook 的用户数据

iOS Swift Parse-Server 用户登录认证

Parse - 每次都重新创建 Facebook 用户