0

在我的应用程序中,我想为特定的解析用户存储一些特定的数据,并且我想从中获取数据。我应该使用用户的唯一 ID 还是其他东西在数据浏览器中创建一个类?谁能帮我?提前致谢。

4

3 回答 3

0

假设使用 Rest API,对特定解析用户进行独占 READ/WRITE 的最低先决条件是:

根据 POST 到用户表的解析文档创建新用户...

  -d '{"username":"yourName","password":"e8"}'  https://api.parse.com/1/users

从上述请求中获取响应并解析新用户的 OID 和响应中的 TOKEN 值。将它们持久保存在您的应用程序中,以持久的“user_prefs”类型,以备将来使用...

PreferenceManager.getDefaultSharedPreferences(myActivity).edit().put....

当您想为该用户编写对象时,请执行以下操作:

包含在标题中,

 "X-Parse-Session-Token: pd..."   // the token you saved

在 json 中包含 ACL 标记,用于您正在编写的解析类/对象的 POST...

ACL 标记中的用户 OID 应该是创建新解析用户时响应中的 OID 值

 -H "X-Parse-Session-Token: pdqnd......." \
  -d '{"ACL": {"$UserOID": {
    "read": true,
    "write": true
  }}}' \
  https://api.parse.com/1/classes/MyClass

阅读:

因为写入 MyClass 的每个对象的 ACL 对 '$UserOID 中的用户都是专有的,所以其他人无法看到它们。只要您在任何读取的标头中包含令牌值,$UserOID 将是唯一具有访问权限的标头。最初在您创建新用户时返回的令牌值在逻辑上绑定到 userOID,并且可以以一种神奇的方式在标头中使用......应用程序启动时设备上不需要服务器会话,不需要显式用户身份验证服务器所需的步骤,GET 中没有查询表达式 - 只需在标头层中提供令牌值并请求所有记录(所有用户),它可以获取仅从标头中的令牌值推断的用户 ID 的记录。在初始化时,应用程序只需从客户端的“shared_prefs”中检索令牌。服务器端,令牌租用是永久的。

 -H "X-Parse-Session-Token: pdqnd......."

在每个 GET 中包含上述内容。-H "X-Parse-Session-Token: pdqnd......." 您将是唯一可以看到它们的解析用户...

如果您希望多个设备绑定到一个解析用户,这是 NG。如果您希望从应用程序的一个实例访问多个解析帐户,这是 NG。

于 2013-05-11T17:13:22.273 回答
0

你必须使用relations. 首先,创建一个新列(不在您的用户类中),类型是关系,关系是用户类。假设您要添加新帖子。用这个:

ParseObject post = ...;

ParseUser user = ParseUser.getCurrentUser();
ParseRelation relation = user.getRelation("posts");
relation.add(yourString);
user.saveInBackground();

代码源

告诉我,如果你不明白,我会编辑这个。

于 2015-11-19T18:14:08.740 回答
-1

我猜你想要类似的东西(为特定的解析用户存储一些特定的数据)

var note = new NoteOb();
        note.set("text", text);
        note.set("creator", currentUser);
        note.setACL(new Parse.ACL(currentUser));

        note.save(null, {
            success:function(note) {
                $("#newNoteText").val("");
                getMyNotes();
            }, error:function(note, error) {
                //Should have something nice here...
            }
        });

并且:我想从中获取数据

function getMyNotes() {
    var query = new Parse.Query(NoteOb);
    query.equalTo("creator", currentUser);
    query.find({
        success:function(notes) {
            var s = "";
            for(var i=0, len=notes.length; i<len; i++) {
                s+= "<p>"+notes[i].get("text")+"</p>";
            }
            $("#currentNotes").html(s);
        }
    });
}

看看这个博客,它会给你一个更好的理解。

于 2013-05-10T10:09:16.290 回答