gpt4 book ai didi

ios - 为当前用户调用 Parse Cloud Function

转载 作者:行者123 更新时间:2023-11-28 05:34:26 25 4
gpt4 key购买 nike

我正在尝试在 Parse 中运行一些 Cloud Functions,然后是我在 Stackoverflow 上发现的一个问题 (Parse iOS SDK: Calling Cloud Functions From Xcode)。以下是我想在我的应用程序中调用的函数:

var moment = require("moment");

Parse.Cloud.define("registerActivity", function(request, response) {
var user = request.user;
user.set("lastActive", new Date());
user.save().then(function (user) {
response.success();
}, function (error) {
console.log(error);
response.error(error);
});
});

Parse.Cloud.define("getOnlineUsers", function(request, response) {
var userQuery = new Parse.Query(Parse.User);
var activeSince = moment().subtract("minutes", 2).toDate();
userQuery.greaterThan("lastActive", activeSince);
userQuery.find().then(function (users) {
response.success(users);
}, function (error) {
response.error(error);
});
});

我想在我的一个 View Controller 中的 viewDidLoad 中调用 registerActivity 函数。这是我到目前为止所拥有的。我需要一些帮助来完成该功能:

override func viewDidLoad() {
super.viewDidLoad()

let currentUser = PFUser.currentUser()

PFCloud.callFunctionInBackground("registerActivity", withParameters: currentUser){
if (!error){

}
}

// Uncomment the following line to preserve selection between presentations
// self.clearsSelectionOnViewWillAppear = false

// Register cell classes
self.collectionView.registerClass(UICollectionViewCell.self, forCellWithReuseIdentifier: reuseIdentifier)

}

我在“PFCloud”行收到一条错误消息:PFUser is not identical to [NSOBject:Anyobject]。如何为当前用户调用此 registerActivity 函数?

谢谢!

更新

将 viewDidLoad 中的函数调用更新为:

PFCloud.callFunctionInBackground("registerActivty", withParameters: nil, block: nil)

这会导致异常:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to insert nil object from objects[1]'

最后更新:这解决了问题:

PFCloud.callFunctionInBackground("registerActivity", withParameters: [:], target: nil, selector: "block:")

感谢您的帮助!

最佳答案

如果 currentUser 已经登录,你不需要给它。在服务器端 request.user 已经被设置为正在登录的用户要求。在这种情况下,您可以调用带有空字典参数的云函数。

另一方面,您收到的错误是因为无法将 PFUser 对象传递给云函数。您可以将用户 ID 作为 ["id": currentUser.objectId] 传递。然后在服务器中,您可以通过 request.params.id 访问它以通过 id 获取用户。这是为了防止您想要为任何用户调用云功能(即使它没有登录)。

关于ios - 为当前用户调用 Parse Cloud Function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25195158/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com