【发布时间】:2015-11-01 00:45:00
【问题描述】:
我正在制作一个同时使用accounts 包和facebook 的graph api 的应用程序。特别是朋友 api。朋友 api 返回所有使用过该应用程序的 facebook 朋友。问题是它返回 facebook id,并且 accounts 包生成应用程序特定的 id。当我想从包含朋友信息的集合中检索信息但与应用程序特定的 ID 一起存储时,这是有问题的。我通过在集合中存储 fb id 和帐户 id 来解决这个问题。
但我仍然无法根据他们的 fb id 更新用户数据,因为只允许使用特定于应用程序的 id 进行更新。我想要的,但不允许的:
UserData.update({fbId: friend.fbId},{$push: {some: data}});
我能想到的唯一解决方案是首先获取每个用户 ID,如下所示:
var friendId = UserData.findOne({fbId: friend.fbId})._id;
这显然不是一个好的解决方案,因为每次更新都需要一个额外的数据库调用。
有没有办法在创建时将帐户 id 设置为等于 facebook id?或者你有什么其他的建议。
【问题讨论】:
-
UserData是自定义集合吗?如果您要更新 Meteor.users 集合,更新时会出现什么错误? -
@Xinzz UserData 是一个自定义集合。如果尝试使用 fbId 进行更新,我会收到以下错误:
Uncaught Error: Not permitted. Untrusted code may only update documents by ID. [403]
标签: javascript facebook-graph-api meteor meteor-accounts