Обратите внимание, что в процессе разбора вы не можете запрашивать поле электронной почты других пользователей.Вы можете увидеть поле электронной почты, только если вы вошли в систему.Это механизм безопасности.
A.Если вы хотите получить поле электронной почты для пользовательского объекта, вы можете сделать две вещи:
- Передать маркер сеанса пользователя в запрос.
new Parse.Query(Parse.User).get(<userId>,{sessionToken:<userSessionToken>});
Использовать мастер-ключ.(Примечание: Вы должны установить мастер-ключ раньше.)
new Parse.Query(Parse.User).find({useMasterKey:true});
B.Ваш метод include правильный, и он будет извлекать объект byUser
.Вам не нужно использовать .attributes.
ОБНОВЛЕНИЕ: Вы также можете установить поле publicEmail
в своем классе User, которое не будет отфильтровано сервером синтаксического анализа.чтобы автоматизировать это, вы можете написать облачный код.
Пример облачного кода (на parse-сервере V 3.0.0 и выше):
ОБРАТИТЕ ВНИМАНИЕ, ЧТО ВЫ НЕ МОЖЕТЕ ИСПОЛЬЗОВАТЬ ASYNCФУНКЦИИ ДЛЯ PARSE-SERVER
Parse.Cloud.beforeSave(Parse.User, async req=>{
if (!req.original && !req.master && req.object.get('email')){
req.object.set('publicEmail',req.object.get('email'));
}
})
Теперь, если новый пользователь зарегистрируется, этот облачный код автоматически добавит новое поле в пользовательский объект publicEmail
, который не фильтруетсяпо parse-серверу.