我正在做一个应用程序,它使用帐户包和Facebook的图形API。具体的朋友api。朋友API返回所有使用该应用程序的Facebook朋友。问题是它返回的是Facebook的ID,而账户包生成特定于应用程序的ID。当我想从包含朋友信息的集合中检索信息,但是与应用程序特定的ID一起存储时,这是有问题的。我通过在集合中存储fb id和帐户id来解决此问题。流星的脸谱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
@Xinzz UserData是一个自定义集合。如果尝试使用fbId更新,我会得到以下错误:'未捕获的错误:不允许。不受信任的代码只能通过ID更新文档。 [403]' – MoeRum