如果用户名和密码组合正确,请检查 google 数据存储

if username and password combination are correct by checkin the google datastore

编辑:显然问题并不清楚,所以... 如何在数据存储中找到用户的密码,并检查它是否等于提供给该方法的密码(如果有意义)。 编辑结束。

我有以下代码用于检查用户名是否存在,现在我只需要检查给定用户名的密码是否正确。

public boolean Login(String usernamein, String passwordin) {
    DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
    Filter usernamefilter = new FilterPredicate("username", FilterOperator.EQUAL, usernamein);
    Query validuserquery = new Query("Users").setFilter(usernamefilter).setKeysOnly();
        Entity theUser = datastore.prepare(validuserquery).asSingleEntity();
        System.out.println(usernamein);
        System.out.println(validuserquery);
        System.out.println(theUser);
        if(theUser == null) {
            System.out.println("Username not found");
            return false;
        }
        return true;
}

即使是伪代码,我也在努力弄清楚如何做到这一点,我对 GAE 和数据存储真的很陌生,但这对我的 A-Levels 来说是

我认为这个添加可以做到,但是 theUser.getProperty("password") 是空的我真的不知道这段代码中的用户是什么,但我知道我数据中的所有用户商店有密码,因此 none 应该为空

    if(theUser == null) {
        System.out.println("Username not found");
        return false;
    }
    System.out.println(theUser.getProperty("password"));
    if(passwordin.equals(theUser.getProperty("password"))){
        return true;
    }
return false;

如果有什么不明白或者您需要更多信息请告诉我,因为我确实需要帮助:(

setKeysOnly 是我对一个单独的 Q 的建议(你还没有接受我的 A,所以,咳咳,很特别 看到你在这里使用它!) 您只想检查用户名是否存在。

这样你就不会得到任何属性。

删除它,属性 在那里(在你的第一个 Q 你有一个投影,如果你的用户实体很大并且你只需要密码 属性——但它是一种优化,就像 setKeysOnly 一样,你希望知道规则——首先使其工作,然后使其快速! -).