2016-03-06 75 views
0

在我的应用程序中,我试图让用户通过电子邮件互相联系。当用户按下“联系卖家”时,我正在使用云端功能发送用Mailgun处理的自动电子邮件。如何检索不是当前用户的PFUser电子邮件?

我必须通过访问当前用户的电子邮件地址:

let buyerEmail = PFUser.currentUser.objectForKey("email") as! String.

什么被卖是PFObject称为产品。产品的一个领域是“卖家”,它代表发布待售产品的用户。

我想通过这种方式来获得卖家的电子邮件:

let seller = product.objectForKey("seller") as! PFUser 
let sellerEmail = seller.objectForKey("email") as! String 

然而,当我尝试运行我的应用程序,它具有以下消息崩溃:

*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Key "email" has no data. Call fetchIfNeeded before getting its value. 

我怎样才能获取卖家的电子邮件?出于安全原因,这是不允许的吗?电子邮件字段没有隐藏在我的分析数据库中,所以我不明白为什么这会是原因。任何帮助表示赞赏。

+4

错误消息告诉你问题是什么; “seller”PFUser的数据尚未检索。您需要检查'seller'上的'dataAvaiable',并在'seller'上调用'fetchIfNeededInackgroundWithBlock',然后在完成块中访问该电子邮件,如果它为false - https://parse.com/docs/ios/api/类/ PFObject.html#/ c:objc(cs)PFObject(im)fetchIfNeededInBackgroundWithBlock:您也可以在您的初始查询中使用'includeKey:seller' – Paulw11

回答

0

出于安全原因应该隐藏它,你应该锁定用户。您应该将产品传递给云代码,您可以在其中使用主密钥并获取用户信息。在尝试访问其他详细信息之前,只需获取用户。

相关问题