我有一个Player类.玩家可以拥有x个奖杯.我有Player objectId,需要获得所有奖杯的列表.
在Parse.com数据浏览器中,Player对象有一个标记为的列:
trophies Relation<Trophy>
(view Relations)
Run Code Online (Sandbox Code Playgroud)
这似乎应该是这么简单,但我遇到了问题.
我在内存中有ParseObject'播放器':
var query = new Parse.Query("Trophy");
query.equalTo("trophies", player);
query.find({
/throws an error- find field has invalid type array.
Run Code Online (Sandbox Code Playgroud)
我也尝试了关系查询:
var relation = new Parse.Relation(player, "trophies");
relation.query().find({
//also throws an error- something about a Substring being required.
Run Code Online (Sandbox Code Playgroud)
这必须是一个完全常见的任务,但我无法弄清楚这样做的正确方法.
任何人都知道如何在Javscript CloudCode中执行此操作?
非常感谢!
编辑 -
我可以对用户进行关系查询:
var user = Parse.User.current();
var relation = user.relation("trophies");
relation.query().find({
Run Code Online (Sandbox Code Playgroud)
我不明白为什么如果我使用的是非用户对象,这段代码会中断.
我有一个解析的类,比如图片.这些中的每一个都属于用户.对此用户的引用存储在Pictures表/类中作为Pointer用户.
在我的云代码中,我试图使用主密钥获取属于用户的所有图片.以下是我的代码:
Parse.Cloud.define("getPictures", function(request, response) {
Parse.Cloud.useMasterKey();
var query = new Parse.Query("Pictures");
query.equalTo("user", request.params.user);
query.find({
success: function(results) {
var status = "Found " + results.length + " pictures for userId " + request.params.user;
response.success(status);
},
error: function() {
status = "No pictures exist for userId " + request.params.user;
response.error(status);
}
});
});
Run Code Online (Sandbox Code Playgroud)
例如,该代码输出对于id为'xyz'的特定用户有0张图片.但是,我可以看到用户存储了大量图片.
我还验证了问题不在于使用主密钥,因为我在控制台日志中看到代码正在作为主代码执行.而且,如果我查询图片objectId,它会在结果中出现,这意味着ACL不是问题.
我想我必须在这里使用关系/加入,但我不知道该怎么做.
之前,我已经成功添加了!强制unwrap从变量中删除"Optional()".我无法在Parse.com返回的数据中执行此操作
query.findObjectsInBackgroundWithBlock {
(objects: [AnyObject]!, error: NSError!) -> Void in
if error == nil {
for object in objects {
println(object[myObject]!)
}
} else {
println("Error: \(error) \(error.userInfo!)")
}
}
Run Code Online (Sandbox Code Playgroud)
在上面的示例中,将返回Parse.com类中的整个表并将其打印到控制台.然而,
可选的(...)
即使我强行打开使用,也会为每一行返回!在末尾
我错过了什么?
(注意:myObject是Parse Class数据库中Column的名称)
我有一个包含许多includeKeys的查询,这些指针指向另一个类.从解析云接收数据后,所有记录都使用pinAll方法存储在本地.当我取回存储的结果时,我可以获取记录但不包括指针.请参阅下面的示例代码
[query includeKey:@"classOne.innerClass"];
[query includeKey:@"classTwo.innerClass"];
[query includeKey:@"classThree"];
[query includeKey:@"classFour"];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error){
[PFObject pinAllInBackground:objects withName:@"LocalRecords" block:^(BOOL succeeded, NSError *error) {
}];
}];
Run Code Online (Sandbox Code Playgroud)
我正在取得像这样的记录
PFQuery *lquery = [PFQuery queryWithClassName:[ClassName parseClassName]];
[lquery fromPinWithName:@"LocalRecords"];
BFTask *btask = [[lquery findObjectsInBackground] continueWithSuccessBlock:^id(BFTask *task) {
if (task.error) {
NSLog(@"Error: %@", task.error);
return task;
}
}];
Run Code Online (Sandbox Code Playgroud)
当我尝试访问classOne,classTwo,classThree和classFour中的任何列时,由于未捕获的异常'NSInternalInconsistencyException',我得到一个异常终止应用程序,原因:'Key'name"没有数据.在获取其值之前调用fetchIfNeeded.
我正在建立一个Android应用程序,它将从我的服务器接收通知.这意味着超过100万的所有用户都将收到来自我服务器的通知.我知道解析和谷歌云消息传递(GCM)可以做推送消息,但我想知道这两个中最好的(解析和GCM),所以我可以实现它.提前致谢.
我担心我使用JQuery兼容的promises看到Parse的引用,因为我已经读过jQuery promises 允许消费者改变promise的状态.是否可以使用Parse JavaScript SDK 使用已知为Promises/A +的另一个promise实现(例如ECMAScript 6实现,或Bluebird)?
通常我会认为这是不可能的,但是在Parse JavaScript SDK的v1.4.2中,Parse.Promise的实现将属性"_isPromisesAPlusCompliant"定义为false,然后在库中的各种函数中进行检查.
NB此问题最初是在Parse Developers小组中提出的,但未收到任何回复.
我退出应用程序,重新启动它,我得到一个例外.
public void onCreate() {
-->here Parse.initialize(this, "adfsfasdfs",
"asdfadfsdf");
ParseInstallation.getCurrentInstallation().saveInBackground();
ParseInstallation.create(identity == null ? "No Identity Set"
: identity);
Run Code Online (Sandbox Code Playgroud)
例外
07-08 23:27:29.411: E/AndroidRuntime(4889): Caused by: java.lang.IllegalStateException: ParsePlugins is already initialized
07-08 23:27:29.411: E/AndroidRuntime(4889): at com.parse.ParsePlugins.set(ParsePlugins.java:27)
07-08 23:27:29.411: E/AndroidRuntime(4889): at com.parse.ParsePlugins.access$200(ParsePlugins.java:11)
07-08 23:27:29.411: E/AndroidRuntime(4889): at com.parse.ParsePlugins$Android.initialize(ParsePlugins.java:141)
07-08 23:27:29.411: E/AndroidRuntime(4889): at com.parse.Parse.initialize(Parse.java:178)
07-08 23:27:29.411: E/AndroidRuntime(4889): at com.mcruiseon.caregiri.Registration.onCreate(Registration.java:98)
Run Code Online (Sandbox Code Playgroud)
清单文件
<service android:name="com.parse.PushService" />
<receiver android:name="com.parse.ParseBroadcastReceiver" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.USER_PRESENT" />
</intent-filter>
</receiver>
<receiver
android:name="com.parse.ParsePushBroadcastReceiver"
android:exported="false" >
<intent-filter>
<action android:name="com.parse.push.intent.RECEIVE" />
<action …Run Code Online (Sandbox Code Playgroud) 使用parse.com和JavaScript SDK.代码应该让用户注册并上传个人资料图片.
更新了,这是我正在使用的代码,它在尝试向用户注册控制台消息时返回错误 is Uncaught TypeError: Cannot read property 'length' of undefined
> $('#SignUp').click(function(e) {
> UserSignUp(); });
>
>
> function UserSignUp() {
>
> var user = new Parse.User();
> userFirstname = $('#firstnamesu').val();
> userLastname = $('#lastnamesu').val();
> userUsername = $('#usernamesu').val();
> userGender = $('#gendersu').val();
> Email = $('#emailsu').val();
> PWP = $('#passwordsu').val();
>
> user.set("FirstName", userFirstname);
> user.set("LastName", userLastname);
> user.set("username", userUsername);
> user.set("gender", userGender);
> user.set("email", Email);
> user.set("password", PWP);
>
>
> var fileUploadControl = …Run Code Online (Sandbox Code Playgroud) 我正在开发一个与Geolocations相关的Android应用程序.我正在使用Parse作为后端.我需要根据用户的当前位置显示结果.
我正在使用此查询:
ParseQuery<ParseObject> query = ParseQuery.getQuery("Restaurants");
ParseGeoPoint sLatlong = new ParseGeoPoint(currentLat, currentLong);
query.whereNear("rest_location", sLatlong);
Run Code Online (Sandbox Code Playgroud)
但结果并没有按距离排序.
有人可以帮我吗.
我在我的应用程序中使用Parse SDK(https://github.com/ParsePlatform/Parse-SDK-Android).
我的应用程序还使用Facebook Utils来提供Facebook的登录体验(https://github.com/ParsePlatform/ParseFacebookUtils-Android)
最近我收到了Facebook开发者关于我的一个应用程序的以下消息:"xxx最近对Graph API v2.0进行了API调用,该调用将于8月8日星期一到达2年弃用窗口的末尾, 2016年.请将所有电话迁移到v2.1或更高版本,以避免潜在的破坏体验."
我该如何解决这个问题?
这是dependecies部分中的build.gradle文件:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.parse:parse-android:1.13.1'
compile 'com.parse:parsefacebookutils-v4-android:1.10.4@aar'
compile 'com.parse.bolts:bolts-tasks:1.4.0'
compile 'com.parse.bolts:bolts-applinks:1.4.0'
compile 'com.jeremyfeinstein.slidingmenu:library:1.3@aar'
compile 'com.soundcloud.android:android-crop:1.0.0@aar'
compile 'com.facebook.android:facebook-android-sdk:4.+'
compile files('libs/universal-image-loader-1.9.3.jar')
}
Run Code Online (Sandbox Code Playgroud)
这是我使用Facebook SDK的代码中唯一的一点:
ParseFacebookUtils.logInWithReadPermissionsInBackground(Login.this, permissions, new LogInCallback() {
@Override
public void done(final ParseUser user, ParseException err) {
fbdialog = new ProgressDialog(Login.this);
fbdialog.setTitle("Contacting Facebook");
fbdialog.setMessage("Please wait a moment. We are contacting Facebook to perform the registration");
fbdialog.show();
if (user == null) { …Run Code Online (Sandbox Code Playgroud) android facebook facebook-graph-api parse-platform parsefacebookutils
parse-platform ×10
android ×4
javascript ×4
asynchronous ×1
bluebird ×1
debugging ×1
es6-promise ×1
facebook ×1
ios ×1
java ×1
optional ×1
promise ×1
sdk ×1
swift ×1