在Parse中获取用户角色

时间:2018-01-31 08:32:59

标签: mongodb-query parse-server

我试图在云端功能登录时获取用户角色。我知道这是一个非常简单的任务,但我无法解决它。我尝试了文档提到的使用innerQuery提及的方式,但似乎无法正常工作。由于我比较新,我相信我犯了一个愚蠢的错误。你能指出我的错误吗?

我的功能如下:

Parse.Cloud.define('login', async (req, res) => {
    // TODO: put a validation layer here
    // if (!req.user) res.error('user undefined');

    if (!req.params.email || !req.params.password) res.error('email/password is required');
    const userQuery = new Parse.Query(Parse.User);
    const roleQuery = new Parse.Query(Parse.Role);
    try {
        const user = await Parse.User.logIn(req.params.email, req.params.password);
        const userRoleQuery = user.relation(Parse.Role).query();

        const role = await userRoleQuery.find();

        res.success(role);
    } catch (error) {
        res.error(error);
    }
});

附件也是我的_Join:users_Role表格: 我正在查询第二个用户。

image

2 个答案:

答案 0 :(得分:1)

我不得不承认,我很擅长快速收拾东西。

原来比我想象的要简单。

Parse.Cloud.define('login', async (req, res) => {
    if (!req.params.email || !req.params.password) res.error('email/password is required');
    const userQuery = new Parse.Query(Parse.User);
    const roleQuery = new Parse.Query(Parse.Role);
    try {
        const user = await Parse.User.logIn(req.params.email, req.params.password);
        const userRoleQuery = user.relation(Parse.Role).query();

        const role = await userRoleQuery.find();

        res.success(role);
    } catch (error) {
        res.error(error);
    }
});

答案 1 :(得分:1)

您也可以这样做:

Parse.Cloud.define('getRole', async (request) => {
  const query = await new Parse.Query(Parse.Role).equalTo('users', request.user).find()
  return query
})

或者您可以仅在第二行中在客户端中使用它