Я, очевидно, не понимаю систему публикации/подписки.Метеор опубликовать/подписаться вопрос
Я удалил небезопасные/автоматически опубликованные пакеты.
В моем сервере/publish.js у меня есть:
Meteor.publish("profiles", function() {
return Meteor.users.find({}, {
profile: 1,
status: 1,
services: 0
});
});
В моих клиентов/Lib/collection.js у меня есть:
Meteor.subscribe("profiles");
Profiles = new Mongo.Collection("profiles");
Теперь, что я ожидал был иметь профили сбор на клиенте, который содержит только профиль и статусные части пользовательского документа и не содержит часть услуг (которая подтверждает информацию, такую как электронная почта и т. д.).
Однако на клиенте коллекция профилей пуста, а Meteor.users() доступна и имеет все в ней, так что любой, кто знает, как открыть консоль, может видеть личные данные обо всех пользователях ...
Кто-нибудь знает, что я делаю неправильно здесь?
EDIT: Интересно, что когда я извлекаю публиковать профили полностью, то на клиентской стороне Meteor.users имеет только текущий пользователь в нем, и только ее часть profile
. Теперь я совершенно смущен.
Если пользователь вошел в систему, независимо от того, что произойдет, данные будут опубликованы на клиенте (только данные этого пользователя). ваш метод публикации работает так, как ожидалось. в двух словах, собственные данные пользователя публикуются автоматически метеоритом. –
Я не понимаю вашего ответа? Вы прочитали мой вопрос? Как моя публика работает правильно, когда a) коллекция профилей пуста на клиенте и b) на коллекции Meteor.users() на клиенте есть ВСЕ клиент и их личные данные? –
Meteor.users(). Find() возвращает документы, подписанные на клиенте. если вы удаляете автообновление, обычно нет данных для получения данных. Возможно, у вас есть другой код, который отвечает. –