gpt4 book ai didi

Meteor.user() 仅返回其 _id

转载 作者:行者123 更新时间:2023-12-02 07:16:02 26 4
gpt4 key购买 nike

使用 Meteor.loginWithPassword() 登录用户或使用 Accounts.createUser 创建新用户(均为客户端)后,我可以在他们的回调中进行确认Meteor.user() 确实包含所有设置记录的属性。

{ _id: "XXX",
profile: {
name: "Joe Shmoe",
thumbnail: "http://www.YYY.com/ZZZ.jpg"
},
username: "joeshmoe" }

此外,根据the official docs ,

By default, the current user's username, emails and profile are published to the client.

那么,当我尝试这样访问模板中的这些字段时,有人能告诉我为什么吗

Template.login.user_name = function () {
return (Meteor.userId() ? Meteor.user().profile.name : '')
};

它失败是因为 Meteor.user() 仅返回 {_id: "XXX"} 而没有任何实际属性? IE。用户确实已登录,但用户对象突然丢失/正在隐藏其所有属性。

有人知道问题出在哪里吗?

非常感谢。

编辑: Meteor 0.5.4 会发生这种情况,这是撰写本文时的最新版本。接受的答案确实解决了这个问题;有时,在对象的其余部分从服务器到达之前,Meteor.userId() 就已经有效。谢谢大家。

最佳答案

数据可能尚未从服务器到达。除了检查 Meteor.userId 之外,如果检查属性会发生什么?

Template.login.user_name = function() {
return Meteor.userId() && Meteor.user() && Meteor.user().profile ? Meteor.user().profile.name : "";
}

关于Meteor.user() 仅返回其 _id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14243846/

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