gpt4 book ai didi

Android,获取指向 ParseObject 的指针

转载 作者:太空狗 更新时间:2023-10-29 14:08:24 28 4
gpt4 key购买 nike

如何获得指向解析对象的指针?

例如,我的 ParseUser 有一个名为“school”的列,它是一个指向 Parse 类“School”的指针

school Pointer<School>

我能够获得一个 School 类型的 ParseObject,但是,我不知道如何获得指向这个 School ParseObject 的指针,所以我可以将它放在 ParseUser 的 school 字段中。

我看到了与此类似的帖子,说要创建一个没有数据的解析对象并为其提供正确的对象 ID:

ParseObject mySchoolPtr = ParseObject.createWithoutData("School", mySchoolObject.getObjectId());
currentUser.put("school", mySchoolPtr);

但是,在运行此代码后,我的 User Parse 数据库仅在学校字段中列出“(未定义)”。

下面是捕获整个过程的代码 fragment (在 fragment 之后我进一步解释了 fragment 中发生的事情):

    String school = schoolEditText.getText().toString().trim();
String password = passwordEditText.getText().toString().trim();

final ParseUser currentUser = ParseUser.getCurrentUser();

currentUser.setPassword(password);

// Query schools and search for name == school, create pointer for that one and put it for user "school"
ParseQuery<ParseObject> query = ParseQuery.getQuery("School");
query.whereEqualTo("name", school);
query.getFirstInBackground(new GetCallback<ParseObject>() {
public void done(ParseObject school_found, ParseException e) {
if (school_found != null) {
Log.d("School", "Retrieved " + school_found.getString("name"));
ParseObject myschoolptr = ParseObject.createWithoutData("School", school_found.getObjectId());
currentUser.put("school", myschoolptr);
} else {
Log.d("School", "Error: School name not found in Database. " + e.getMessage());
}
}
});
currentUser.saveInBackground();
showMainActivity();

在我的 Parse 类 School 中,我有一个标记为名称的列。我让用户输入他们的学校,例如“麻省理工学院”。然后我在 parse 上查询 schools 类以获得等效名称。这样就给了我相应的学校类(class)的 ParseObject。我想把它放在 ParseUsers 学校领域。但是,学校的 ParseUser 字段是指向 School 类的指针。如何获得指向我给定的 ParseObject 的指针以放入用户的学校字段?

最佳答案

您必须在 GetCallback 中调用 currentUser.saveInBackground(); 才能正确更新:

...
query.getFirstInBackground(new GetCallback<ParseObject>() {
public void done(ParseObject school_found, ParseException e) {
if (school_found != null) {
Log.d("School", "Retrieved " + school_found.getString("name"));
ParseObject myschoolptr = ParseObject.createWithoutData("School", school_found.getObjectId());
currentUser.put("school", myschoolptr);
currentUser.saveInBackground();
showMainActivity();
} else {
Log.d("School", "Error: School name not found in Database. " + e.getMessage());
}
}
});

关于Android,获取指向 ParseObject 的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31062080/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com