在 android 中以其他用户身份登录时编辑解析用户信息
edit parse user information when logged in as other user in android
我在我的 android application.when 中使用 parse.com 我访问其他用户的个人资料,我能够关注该用户但是当我关注他时,当前登录的以下列中的值用户对象中的更新,但同时我关注的用户的值未更新
它给出:
06-27 05:11:44.521: E/AndroidRuntime(2459): java.lang.IllegalArgumentException: Cannot save a ParseUser that is not authenticated.
这是我的 android 代码
包裹 com.example.wavie.parseQueryRunner;
import android.content.Context;
import com.parse.GetCallback;
import com.parse.ParseException;
import com.parse.ParseObject;
import com.parse.ParseQuery;
import com.parse.ParseUser;
public class FollowUserClass {
private String id;
private Context context;
public FollowUserClass(String id, Context context) {
this.id = id;
this.context = context;
}
public void follow() {
ParseUser currentUser=ParseUser.getCurrentUser();
currentUser.addUnique("following", id);
try {
currentUser.save();
ParseQuery<ParseObject> query=new ParseQuery<ParseObject>("_User");
query.getInBackground(id, new GetCallback<ParseObject>() {
@Override
public void done(ParseObject object, ParseException e) {
// TODO Auto-generated method stub
if(e==null && object!=null){
object.addUnique("followers", ParseUser.getCurrentUser().getObjectId());
try {
object.save();
} catch (ParseException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
});
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
在代码部分构造函数获取我想要的用户的对象 ID follow.first 它更新当前登录的用户在以下字段(数组)中添加获取的 ID。
然后我尝试通过添加行
在其他用户的对象中进行更新
object.addUnique("followers",
ParseUser.getCurrentUser().getObjectId());
但是当我保存它时,解析用户应该在保存之前进行身份验证
错误提到这里的问题。用户未通过身份验证无法执行该操作。当在解析中更新一行的用户不是创建相应行的用户时,就会发生这种情况。
所以您可能应该向正在更新条目的用户授予写入权限。
第二天我找到了答案 question.that 一次,唯一的方法是部署云代码。
实际上,我想更新的用户是其他用户,因此无法在 database.parse 中更新其他人的信息。通过在服务器。
parse 提供了一个命令行工具来执行此操作
for linux 运行 以下命令安装
卷曲-s https://www.parse.com/downloads/cloud_code/installer.sh |须藤 /bin/bash
安装成功后,将在 home/etc/ 中创建一个名为 parse 的文件夹。
现在键入命令解析 $configure accountkey -d
在终端上,它会询问您的解析凭据。
现在在终端上输入 parse 命令到 select 您现有的应用程序之一。
现在你在 home/etc/parse 编辑中打开 main.js 文件。
使用切换到终端部署代码
$parse 部署命令。
现在您可以开始了 云代码已部署
我在我的 android application.when 中使用 parse.com 我访问其他用户的个人资料,我能够关注该用户但是当我关注他时,当前登录的以下列中的值用户对象中的更新,但同时我关注的用户的值未更新 它给出:
06-27 05:11:44.521: E/AndroidRuntime(2459): java.lang.IllegalArgumentException: Cannot save a ParseUser that is not authenticated.
这是我的 android 代码 包裹 com.example.wavie.parseQueryRunner;
import android.content.Context;
import com.parse.GetCallback;
import com.parse.ParseException;
import com.parse.ParseObject;
import com.parse.ParseQuery;
import com.parse.ParseUser;
public class FollowUserClass {
private String id;
private Context context;
public FollowUserClass(String id, Context context) {
this.id = id;
this.context = context;
}
public void follow() {
ParseUser currentUser=ParseUser.getCurrentUser();
currentUser.addUnique("following", id);
try {
currentUser.save();
ParseQuery<ParseObject> query=new ParseQuery<ParseObject>("_User");
query.getInBackground(id, new GetCallback<ParseObject>() {
@Override
public void done(ParseObject object, ParseException e) {
// TODO Auto-generated method stub
if(e==null && object!=null){
object.addUnique("followers", ParseUser.getCurrentUser().getObjectId());
try {
object.save();
} catch (ParseException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
});
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
在代码部分构造函数获取我想要的用户的对象 ID follow.first 它更新当前登录的用户在以下字段(数组)中添加获取的 ID。
然后我尝试通过添加行
在其他用户的对象中进行更新 object.addUnique("followers",
ParseUser.getCurrentUser().getObjectId());
但是当我保存它时,解析用户应该在保存之前进行身份验证
错误提到这里的问题。用户未通过身份验证无法执行该操作。当在解析中更新一行的用户不是创建相应行的用户时,就会发生这种情况。
所以您可能应该向正在更新条目的用户授予写入权限。
第二天我找到了答案 question.that 一次,唯一的方法是部署云代码。 实际上,我想更新的用户是其他用户,因此无法在 database.parse 中更新其他人的信息。通过在服务器。 parse 提供了一个命令行工具来执行此操作 for linux 运行 以下命令安装 卷曲-s https://www.parse.com/downloads/cloud_code/installer.sh |须藤 /bin/bash
安装成功后,将在 home/etc/ 中创建一个名为 parse 的文件夹。 现在键入命令解析 $configure accountkey -d 在终端上,它会询问您的解析凭据。 现在在终端上输入 parse 命令到 select 您现有的应用程序之一。 现在你在 home/etc/parse 编辑中打开 main.js 文件。 使用切换到终端部署代码 $parse 部署命令。 现在您可以开始了 云代码已部署