[英]How to save user that is not logged in with Parse?
我正在開發一個需要能夠搜索合作伙伴的應用程序。 顯然,為用戶保存不是問題,但是我不確定為其他用戶修改數據的最佳方法是什么。 也許向其他用戶發送一條消息,該消息在登錄時自動被讀取並添加了關系狀態?
這就是我所擁有的-它從所有也在搜索游戲的玩家中找到一個隨機玩家,並將其添加到“合作伙伴”關系中。 現在,其他用戶也將如何處理呢?:
- (IBAction)searchForPlayer:(id)sender {
[self.currentUser setObject:@0 forKey:@"searching"];
PFQuery *findPotential = [PFQuery queryWithClassName:@"_User"];
[findPotential whereKey:@"searching" equalTo:@1];
[findPotential findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
int partnerNum = arc4random_uniform(objects.count);
PFUser *newPartner = [objects objectAtIndex:partnerNum];
if(error){
NSLog(@"Error!");
}
else {
if (objects.count == 0|| [newPartner.objectId isEqualToString:self.currentUser.objectId]) {
NSLog(@"None found");
[self.currentUser setObject:@1 forKey:@"searching"];
}
else {
PFRelation *partners = [self.currentUser relationForKey:@"partners"];
[partners addObject:newPartner];
NSLog(@"Partner is: %@", newPartner.username);
[self.currentUser setObject:@0 forKey:@"searching"];
}
}
}];
[self.currentUser saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
if(error){
NSLog(@"Error!");
}
}];
}
您永遠都不想做這樣的客戶端。 為了安全起見,一個用戶不能更改另一個用戶。 使用雲代碼。 調用一個函數,並在該函數中驗證您確實要執行此操作,然后使用主鍵查詢和更改其他對象。
您基本上可以將Objective-C查詢/示例轉換為JavaScript,將其放在接受一些參數的Cloud Function中,然后將其放在頂部:
Parse.Cloud.useMasterKey();
或者,您可以分別為特定方法提供主密鑰,例如:
object.save(null, { useMasterKey: true }).then(function(object) { ...
在此處閱讀Cloud Code文檔: https : //parse.com/docs/cloud_code_guide
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.