Использование Accounts.FindUserByUsername для поиска имен пользователей в коллекции Users (Метеор) - PullRequest
0 голосов
/ 06 марта 2019

Буду очень признателен за помощь здесь. Уже пару часов бьюсь головой о стол.

Я пытаюсь создать простую функцию поиска для поиска имен пользователей. Моя цель - иметь возможность искать имена пользователей и в конечном итоге добавить выбранное имя пользователя в коллекцию «команд».

Я пробовал легкий поиск, но безуспешно. Я пытаюсь использовать аккаунт Accounts.FindUserByUsername, но получаю неопределенный ответ. У меня установлен аккаунт-пароль, кстати.

Это мой код:

Серверная сторона:

    Meteor.methods({
   findUser: function (username) {
      const user = Accounts.findUserByUsername(username)
      return user
   }
})

Клиентская сторона:

Template.search.helpers(function() {
   Meteor.call('findUser', 'username', findUserCallback)
})
function findUserCallback(error, username) {
   console.log(username)
}
Template.search.events({
   'submit .search'(event) {
      event.preventDefault()
      Meteor.call('findUser', 'username', findUserCallback)
   }
})

Я знаю, что делаю что-то очень неправильное, но не могу понять, что. Я не нашел много помощи онлайн.

Большое спасибо - я действительно ценю это!

1 Ответ

0 голосов
/ 08 марта 2019

Добро пожаловать в стек Переполнение, Юлия.

Коллекция пользователей Meteor является особенной, поскольку она используется для аутентификации, а доступ к другим пользователям не рекомендуется в пользовательском интерфейсе из-за угроз безопасности.

Обычно есть другая коллекция под названием «игроки» или «участники» - преимущество этого в том, что вы можете хранить дополнительную информацию, и вы можете легко публиковать / подписываться на эти коллекции и манипулировать ими без необходимости записи Метеоритные методы для выполнения вашей работы.

В новой коллекции вы можете хранить _id пользователя, так что вы всегда можете ссылаться на запись пользователя (т.е. на имя пользователя), если вам нужно.

...