对象未保存在 Parse-Server 上

Posted

技术标签:

【中文标题】对象未保存在 Parse-Server 上【英文标题】:Object not saving on Parse-Server 【发布时间】:2018-01-15 09:35:19 【问题描述】:

我刚刚在 Parse-Server (Heroku/MLab) 上设置了一个应用程序以与 ios 应用程序一起使用(在目标 C 中)。 参考我之前的一些经验,我认为它应该有效。但是当我尝试将一个对象从我的 iOS 应用程序保存到 Parse-Server 时,它失败了。

这里是初始化代码,在 AppDelegate.m 中:

[Parse initializeWithConfiguration:
 [ParseClientConfiguration configurationWithBlock:^(id<ParseMutableClientConfiguration> configuration) 
    configuration.applicationId = @"AAAABBBCCCCXXXXYYYY333344445555";
    configuration.clientKey = @"9999999888888887777777wwwwwwHHHHHHzzzzZZZ";
    configuration.localDatastoreEnabled = @"https://myownapp.herokuapp.com/parse";
]];

这是我用来在 iOS 应用中保存对象的代码:

PFObject *myObject = [PFObject objectWithClassName:@"MyCollectionName"];
// name and membersString are NSString objects previously defined.
myObject[@"name"] = name; 
myObject[@"members"] = membersString;
[myObject saveInBackgroundWithBlock:^(BOOL succeeded, NSError * _Nullable error) 
    if (succeeded) 
        NSLog(@"all is working fine!");
     else 
        NSLog(@"Error:\n%@",error);
    
];

这是我在 Xcode 调试控制台中遇到的错误:

Error Domain=Parse Code=100 "A server with the specified hostname could not be found." 
UserInfo=code=100, error=A server with the specified hostname could not be found., 
NSLocalizedDescription=A server with the specified hostname could not be found., 
temporary=1, originalError=Error Domain=NSURLErrorDomain 
Code=-1003 "A server with the specified hostname could not be found." 
UserInfo=NSUnderlyingError=0x1c0844140 Error Domain=kCFErrorDomainCFNetwork Code=-1003 "(null)" 
UserInfo=_kCFStreamErrorCodeKey=8, _kCFStreamErrorDomainKey=12, 
NSErrorFailingURLStringKey=https://api.parse.com/1/classes/MyCollectionName, 
NSErrorFailingURLKey=https://api.parse.com/1/classes/MyCollectionName, 
_kCFStreamErrorDomainKey=12, _kCFStreamErrorCodeKey=8, 
NSLocalizedDescription=A server with the specified hostname could not be found., 
NSUnderlyingError=0x1c0848b20 Error Domain=NSURLErrorDomain 
Code=-1003 "A server with the specified hostname could not be found." 
UserInfo=NSUnderlyingError=0x1c0844140 Error Domain=kCFErrorDomainCFNetwork 
Code=-1003 "(null)" UserInfo=_kCFStreamErrorCodeKey=8, _kCFStreamErrorDomainKey=12, 
NSErrorFailingURLStringKey=https://api.parse.com/1/classes/MyCollectionName, 
NSErrorFailingURLKey=https://api.parse.com/1/classes/MyCollectionName, _kCFStreamErrorDomainKey=12, 
_kCFStreamErrorCodeKey=8, NSLocalizedDescription=A server with the specified hostname could not be found.

我已经为我的服务器设置了一个正确的名称:https://myownapp.herokuapp.com/。

我不太明白为什么我看到:https://api.parse.com 出现在错误消息中。 这可能是什么问题?但我真的不知道该怎么做才能改变它。 我想我在应用端和服务器端都做了所有必要的事情;但我显然遗漏了一些东西。

如果有人对解决方案有任何想法,请告诉我。将不胜感激。

【问题讨论】:

https://api.parse.com/ 无法访问 你说得对,我也能读懂。但我能做些什么呢?我没有在我的代码中的任何地方设置这个“api.parse.com”。我只能在错误消息中阅读。 如何在 Appdelegate 中初始化解析连接? 我刚刚编辑了帖子以添加此信息。请看一下,我希望你能看到那里有什么问题。谢谢。 【参考方案1】:

您可能需要正确初始化 SDK。

configuration.localDatastoreEnabled = @"https://myownapp.herokuapp.com/parse";

这应该是:

configuration.server = @"https://myownapp.herokuapp.com/parse";
configuration.localDatastoreEnabled = true;

【讨论】:

是的。谢谢。你是对的,除了它应该是 configuration.server 而不是 configuration.serverURL。我不太了解第二行,没有它对我有用。我试图编辑您的答案以接受它,但它不起作用。如果你改变它,我可以接受。 我编辑了评论,我添加了第二行,因为您可以选择使用 localDatastoreEnabled 设置

以上是关于对象未保存在 Parse-Server 上的主要内容,如果未能解决你的问题,请参考以下文章

Parse-Server可防止自动添加字段

Flutter parse-server sdk 无法删除对象

用于删除的解析服务器“找不到对象”

Parse-Server 云代码查询不返回所有列

更改未保存在核心数据模型中(例如删除对象)

托管对象上下文未保存到持久存储