繁体   English   中英

使用解析获取其他查询列

[英]Get other query columns with Parse

我正在尝试通过使用Parse SDK在Android应用程序中实现注册/登录系统。

到目前为止,我已经实现了注册和登录。

我正在寻找的是在另一个活动(例如first_name或last_name)上显示其他用户凭据。

这是我的代码:

LoginActivity.java

//Read user information as String.
String email = etEmail.getText().toString();
String password = etPassword.getText().toString();

//Find user by Email and Password.
ParseQuery<ParseObject> query = ParseQuery.getQuery("Users");

query.whereEqualTo("email", email);
query.whereEqualTo("password", password);
query.findInBackground(new FindCallback<ParseObject>() {
  public void done(List<ParseObject> users, ParseException e) {

    if (e == null) {
       //User logged in successful.
       Toast.makeText(LoginActivity.this, "Welcome back!", Toast.LENGTH_SHORT).show();
       //Take user to FeedActivity.
       startActivity(new Intent(LoginActivity.this, FeedActivity.class));
    } else {
       //User login failed.
       Toast.makeText(LoginActivity.this, "Login failed.", Toast.LENGTH_SHORT).show();
       e.printStackTrace();
    }
  }
});

RegisterActivity.java

            //Store user information in String.
            String firstname = etFirstname.getText().toString();
            String lastname = etLastname.getText().toString();
            String email = etEmail.getText().toString();
            String password = etPassword.getText().toString();
            int userID = count.getAndIncrement();

            ParseObject Users = new ParseObject("Users");
            Users.put("userID", userID);
            Users.put("first_name", firstname);
            Users.put("last_name", lastname);
            Users.put("email", email);
            Users.put("password", password);
            Users.saveInBackground(new SaveCallback() {
                @Override
                public void done(ParseException e) {
                    if (e == null) {
                        //User registered successfully.
                        Toast.makeText(RegisterActivity.this, "Registration successful."
                                , Toast.LENGTH_SHORT).show();
                        //Take user to LoginActivity.
                        startActivity(new Intent(RegisterActivity.this, LoginActivity.class));
                    } else {
                        Toast.makeText(RegisterActivity.this, "Registration failed."
                                , Toast.LENGTH_SHORT).show();
                        e.printStackTrace();
                    }
                }
            });

您可能要检查通过Intent发送数据。

因此,在第一个活动中,您需要这样做:

Intent i = new Intent(FirstActivity.this, SecondActivity.class);
i.putExtra("label", "My name, yo!");
startActivity(i);

在第二个活动中:

Intent d = getIntent();
String s = d.getStringExtra("label");

或者,您可以这样做: https : //guides.codepath.com/android/Building-Data-driven-Apps-with-Parse#passing-objects-between-activities

如果我说对了,您会想要:

if (ParseUser.getCurrentUser() != null) {
        String user = ParseUser.getCurrentUser().getObjectId();
        ParseQuery<ParseObject> query = ParseQuery.getQuery("User");
        query.whereEqualTo("objectId",user);
        query.findInBackground(new FindCallback<ParseObject>() {
            public void done(List<ParseObject> objects, ParseException e) {
                if (e == null) {
                    for (final ParseObject post : objects) {
                        // Put Data in TextBoxes
                        // String first_name = post.getString("first_name"); - Will return first Name
                    }
                }
            }
        });

    } else {
        //Log in the User
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM