Parse.com输入更多信息进行登录

时间:2015-01-14 17:02:15

标签: android parse-platform

我正在为学校创建一个Android应用程序,让人们登录,为此我使用了Parse。

我的登录活动是这样的: - 第一个活动,学生输入电子邮件地址和passeword并重新输入passeword,当他按下按钮时,解析验证电子邮件,如果在第二个活动开始时登录是不安全的,则验证电子邮件。

- 第二个活动包含文本字段以完成profil(FirstName,LastName,Age ....)。

在Parse.com: 在Users类中,我添加了新列(FirstName,LastName,Age ...)

我的问题是,当用户完成profil并接受时,FirstName,LastName等的数据将添加到Parse.com的Users类中,以完成当前用户登录的行。

我已经在第二个活动SignInBackground中使用了但是因为它需要一个用户名(已经在第一个活动中输入了),我还使用了SaveInBackground和ParseObject,但它创建了一个新类。

2 个答案:

答案 0 :(得分:0)

我假设您在第一个signUpInBackground(SignUpCallback callback)中呼叫Activity

这是关于该方法的Parse文档:

  

public void signUpInBackground(SignUpCallback callback)
  注册一个新用户。你应该为新的ParseUsers调用它而不是ParseObject.save()。这将在服务器上创建一个新的ParseUser,并将会话保留在磁盘上,以便您可以使用ParseUser.getCurrentUser()访问该用户。   在调用signUp之前必须设置用户名和密码。

     

这比使用ParseUser.signUp()更好,除非您的代码已经从后台线程运行。

     

参数:
  回调 - 当signUp完成时调用callback.done(user,e)。

因此,您可以看到,此方法注册用户使用Parse并登录用户,将该登录会话持久保存到磁盘。

因此,当您到达下一个Activity时,您无需注册或登录。您只需从用户获取新值,然后访问当前用户(ParseUser.currentUser() ),以这样的方式将值添加到该对象:

ParseUser user = ParseUser.currentUser();
user.put("attribute1", "value1");
user.put("attribute2", "value2");
user.put("attribute3", "value3");
user.put("attribute4", "value4");    
// And so on...
user.saveInBackground(); // You might want to implement a SaveCallback there

仅供参考: saveInBackground()方法继承自ParseObject

答案 1 :(得分:0)

如果我正确理解您的问题,那么当您在活动2中调用saveInBackground时,您没有可用于用户名的数据。如果是这种情况,我认为最好的选择是将数据传递给您加载第二个活动时,在intent中需要(用户名等)。

要为意图添加用户名,您可以执行以下操作。

String usernameText = "";
Intent ii=new Intent(Activity1.this, Activity2.class);
ii.putExtra("username", usernameText);
startActivity(ii);

然后,要在活动2的OnCreate方法中检索用户名,您可以执行以下操作:

Intent iin= getIntent();
Bundle b = iin.getExtras();

if(b!=null)
{
    String username =(String) b.get("username");
}

显然在我的解决方案中,我假设您将从EditText中检索用户名,但是没有将其放入我的代码中,因为我已经假设您已经知道如何执行此操作。同样在活动2中,一旦检索到用户名,您将需要将其存储为全局变量,以便在用户完成活动2上的表单填写后使用它。