如何为android中的某个特定解析用户存储一些特定数据

时间:2013-05-10 05:47:24

标签: android parse-platform

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

3 个答案:

答案 0 :(得分: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

READS:

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

 -H "X-Parse-Session-Token: pdqnd......."
每次GET都包括上面的内容。 -H“X-Parse-Session-Token:pdqnd .......”您将是唯一能够看到它们的解析用户......

如果你想要多个设备绑定到一个解析用户,那就是NG。 如果您希望从应用程序的一个实例访问多个解析帐户,则为NG。

答案 1 :(得分:0)

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

ParseObject post = ...;

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

Code source

告诉我,如果您不理解,我会编辑此内容。

答案 2 :(得分:-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);
        }
    });
}

Check out this blog,它会让您更好地理解。