当我想从parse db(mongo)中检索ParseObjects(Posts)以显示在我的Android应用程序中时,我需要在其中添加新字段
ParseObject
在交付给客户之前在云代码中。这些领域是
只有
对客户来说是必要的,我也是
不
希望将它们保存到cloud/db。但出于某种奇怪的原因,似乎只有在我将其他字段保存到云上时,它们才会成功地传递到客户端。
像这样的方法会奏效:
Parse.Cloud.define("getPosts", function(request, response){
const query = new Parse.Query("Post");
query.find()
.then((results) => {
results.forEach(result => {
result.set("cloudTestField", "this is a testing server cloud field");
});
return Parse.Object.saveAll(results);
})
.then((results) => {
response.success(results);
})
.catch(() => {
response.error("wasnt able to retrieve post parse objs");
});
});
这将向我的客户提供所有新字段。
但如果我不将它们保存到db,只在客户交付之前添加它们
比如:
Parse.Cloud.define("getPosts", function(request, response){
const query = new Parse.Query("Post");
query.find()
.then((results) => {
results.forEach(result => {
result.set("cloudTestField", "this is a testing server cloud field");
});
response.success(results);
})
.catch(() => {
response.error("wasnt able to retrieve post parse objs");
});
});
然后出于某种原因,在我的android studio(客户端日志)中,我在“cloudTestField”键上收到null
ParseCloud.callFunctionInBackground("getPosts", params,
new FunctionCallback<List<ParseObject>>(){
@Override
public void done(List<ParseObject> objects, ParseException e) {
if (objects.size() > 0 && e == null) {
for (ParseObject postObj : objects) {
Log.d("newField", postObj.getString("cloudTestField"));
}
} else if (objects.size() <= 0) {
Log.d("parseCloudResponse", "sorry man. no objects from server");
} else {
Log.d("parseCloudResponse", e.getMessage());
}
}
});
出于某种原因,输出是:
newField: null
在没有ParseDB的情况下在cloud I中添加对象的方法