2015-12-21 75 views
0

我目前正在嘗試在另一個用戶的數組中保存一個objectId。不幸的是,我收到一個錯誤。這裏是我的嘗試:在另一個用戶插入一個ObjectId - 解析和Swift

let name = (PFUser.currentUser()!["FirstName"] as! String) + " " + (PFUser.currentUser()!["LastName"] as! String) 

let News = News(title: "\(name) accepted your ...", user: PFUser.currentUser()!) 

News.saveInBackgroundWithBlock({ (success: Bool, error: NSError?) -> Void in 

    if (success){ 

     let user = self.interest.user as! User 
     user.joinNews(News.objectId!) 

    } else { 
     print("--------") 
    } 
}) 

這裏是我爲這個創建的FUNC joinNews:

public func joinNews(newsId: String) { 
    newsIds.insert(newsId, atIndex: 0) 

    saveInBackgroundWithBlock { (success, error) -> Void in 
     if error != nil { 
      print("\(error!.localizedDescription)") 
     } 
    } 
} 

在此先感謝您的幫助!

+0

你得到什麼錯誤? –

+0

哦耶對不起,我忘記了......我的壞...這裏是:「抓住」NSInternalInconsistencyException「與原因」用戶不能被保存,除非他們已通過登錄或註冊認證「 –

回答

0

用戶對象有一個特殊的安全性:它只能由用戶自己進行更新,這就是爲什麼你得到錯誤「用戶不能保存,除非他們已經通過登錄或註冊認證的」

如果你想當前用戶修改其他用戶對象的操作,您需要使用雲代碼功能並使用分析主密鑰來覆蓋此安全性。

這看起來像:

Parse.Cloud.define("addNewsToUser", function(request, response) { 
    Parse.Cloud.useMasterKey(); 
    var user = new Parse.User(); 
    user.id = request.params.userId; 
    user.fetch().then(function(object) { 
    // modify the user here 

    return user.save(); 
    }).then(function() { 
    response.success(user); 
    }, function(error) { 
    response.error(error.message); 
    }); 
}); 
+0

謝謝:)你知道另一個如何製作類似新聞Feed的東西?我的目標是創建一個類似按鈕的帖子,每次按下該按鈕時,創建該帖子的用戶都知道有人喜歡它。你有什麼想法如何做到這一點? –

相關問題