据说我们可以检索我们的数据,如果我们有特定行的objectId,但它是自动生成的,我们不能在设置数据时插入它,所以如果我没有对象id,或者任何其他方法如何获取数据所以我可以在我的手段上设置objectId.
代码在评论中:
ParseObject gameScore = new ParseObject("My Parse File");
String objectId = gameScore.getObjectId();
Run Code Online (Sandbox Code Playgroud) 我有一个非常奇怪的问题,因为几周前,一切都运作良好.但是现在,我无法保存包含Date的对象.
我使用Parse.com后端.我有一个非常简单的类,只有一个字段Date.
我做了一个非常简单的查询:
var Day = Parse.Object.extend('Day');
var d = new Day();
var now = new Date();
d.set('dateField', now);
d.save();
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:
关键dateField的无效类型,预期日期,但得到了字符串
如果我试着这样做:
d.set('dateField', {__type:"Date", iso:now.toISOString()}
Run Code Online (Sandbox Code Playgroud)
我有同样的问题......
我希望有人可以帮助我,因为,我不知道......
谢谢 !
现在我使用静态布尔值来判断初始化是什么时候发生的.有没有更简单的方法来知道我已经调用了初始化?
谢谢!!!
解决了!!!!非常感谢你的评论.您需要在扩展应用程序的类中初始化解析,然后将其作为应用程序(而不是其他活动)添加到清单文件中.
:)
这是我使用Parse的类:
package com.example.myapp;
import com.parse.Parse;
import android.app.Application;
public class UseParse extends Application {
@Override
public void onCreate() {
super.onCreate();
Parse.initialize(this, "id", "key");
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的android清单文件
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.myapp"
android:versionCode="1"
android:versionName="1.0"
>
<uses-sdk android:minSdkVersion="11"
android:targetSdkVersion="14"/>
<supports-screens
android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="true"
android:xlargeScreens="true"
android:anyDensity="true"/>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.CALL_PHONE" android:required="false" />
<permission android:protectionLevel="signature"
android:name="com.example.myapp.permission.C2D_MESSAGE" …Run Code Online (Sandbox Code Playgroud) 我试图在我的主要活动中的按钮单击事件中从Parse云存储中检索对象,这是我从parse.com网站示例中复制的简单代码:
ParseQuery<ParseObject> query = ParseQuery.getQuery("WtestObj2");
query.countInBackground(new CountCallback() {
public void done(int count, ParseException e) {
if (e == null) {
//
} else {
//
}
}
});
Run Code Online (Sandbox Code Playgroud)
当我构建时,我得到以下错误,似乎我的"新CountCallback"正在创建一个没有实现抽象方法的匿名calss,但是我在这里从parse.com在线文档中复制了100%的代码,还有什么可能是错的在我的Android Studio项目中?
'anonymous com.mobilevision.wtrend.MainActivity $ 4'不是抽象的,并且不会覆盖CountCallback中的抽象方法done(int,ParseException)
直到最近,我一直使用Parse.com进行我的应用程序的数据管理我现在正在开发一个新项目,我有一些问题......
PS我正在使用Xcode 6
首先是PFImageView,你可以确认一下吗?在没有咨询PFImageView的情况下,如何在我的应用程序中绘制图片?我不明白为什么你不能在我的应用程序PFImageView中使用
此外,当我进行查询时,之前(使用键盘上的enter按钮)出现了查询的自动构建块,但现在我发现自己这个
PFQuery *query = [PFUser query];
[query findObjectsInBackgroundWithBlock: (nullable PFArrayResultBlock (nullable) block]
Run Code Online (Sandbox Code Playgroud)
parse.com发生了什么?我哪里做错了?有人可以'给我这方面的帮助吗?
我正在使用Parse作为我的Android应用程序的后端.当我尝试创建User对象时,我只有一些Android设备的崩溃报告.崩溃的错误是:
Caused by: java.lang.IllegalArgumentException:
You must register this ParseObject subclass before instantiating it.
at com.parse.ParseObject.<init>(ParseObject.java:184)
Run Code Online (Sandbox Code Playgroud)
提交崩溃报告的设备是:
HTC Desire 510 (htc_a11ul) 2 33.3% Android 4.4
Xperia E3 (D2203) 1 16.7% Android 4.4
Galaxy S4 (jflte) 1 16.7% Android 4.4
Galaxy S5 (klte) 1 16.7% Android 4.4
Run Code Online (Sandbox Code Playgroud)
这是非常奇怪的,因为我目前在三星Note 4,Galaxy S4,S5和Nexus 5上测试我的代码没有任何问题.我不确定为什么Parse要求我从不知名的子类,因为我没有尝试使用Parse提供的子类功能.我再一次在其他设备上测试了这段代码而没有任何问题.
有人可以告诉我如何解决这个问题吗?我在下面的代码中包含了创建用户的代码并且崩溃了.
谢谢!
Parse.initialize(this, "XXXXXXXXXXXXXXXX", "XXXXXXXXXXXXXX");
ParseUser user = new ParseUser();
user.setUsername(email);
user.setPassword(confirmPassword);
user.setEmail(email);
user.put("deviceID", deviceID);
user.put("name", fullName);
progress = new ProgressDialog(Register.this);
progress.setMessage("Creating Account... Please Wait");
progress.setProgressStyle(ProgressDialog.STYLE_SPINNER);
progress.setIndeterminate(true);
progress.setCanceledOnTouchOutside(false);
progress.setCancelable(false);
progress.show();
user.signUpInBackground(new …Run Code Online (Sandbox Code Playgroud) 我有一个基于parse.com的应用程序,具有离线功能,其中整个数据库存储在本地(web客户端上的localStorage和移动客户端上的parse.com本地数据库).我正在寻找一种设计解决方案,以便使用远程数据库中的最新更改来有效地更新本地数据库.我能想到的选择是:
使用代码触发器进行日记功能.为每个对象设置云代码触发器(afterSave,afterDelete),并在每次保存或销毁对象时将日志添加到日志表.客户端将查询表以获取更新并记住lastUpdateTime后续请求.
优点:a)我们可以非常详细地总结已经改变的内容和做出改变的人.b)所有更改都可立即供其他客户使用(例如,实时通知表呼叫,几乎没有延迟)
缺点:a)表中可能有太多条目
记录与后台工作.设置查询所有表的后台作业updatedAt,填充日记表并保存lastUpdateTime后续请求.
优点:a)日记表中的条目较少
缺点:a)变化可用不可预测的延迟(不适合实时通知?)b)无法跟踪删除,仍然需要设置另一个表来跟踪删除或实现软删除c)日志中的细节较少(例如当一个用户创建对象并被另一个用户删除时,我们将不知道谁创建了一个对象)
没有期刊.所有客户端查询所有表updatedAt并存储lastUpdateTime后续请求.
优点:a)易于实施,b)即时可用变更
缺点:a)与删除相同的问题,如2,b)效率低(我相信所有客户查询20多个表不是一个好主意
我们也有一个UI,其中用户可以浏览最近的活动(谁改变了什么),所以我对数种瘦1的方法,但该表的潜在规模是令人担忧的我.
在Android中,我ParseObject使用两个不在Parse类中的局部变量进行子类化.我只需要在本地设置这些变量,而无需将它们保存在服务器上.他们String的名字helper1和helper2吸气者和制定者一样.
它的工作原理罚款所有Android上-我可以使用setHelper1("whatever");,以及getHelper()对我的方法ParseObject的.
我想要做的是在JavaScript中执行相同的操作,因为我想要进行相同的操作ParseCloud并使其返回结果Strings而不在数据库类中创建其他列.
我阅读https://parse.com/docs/js/guide#objects-parse-object和https://parse.com/docs/js/guide#queries-basic-queries但它没有太大帮助,我可以得到它.如何实现?
编辑:
q1.find({
success: function(results){
for (var x in results){
x.helper1 = 'foo';
}
response.success(results);
},
error: function(error){
}
});
Run Code Online (Sandbox Code Playgroud) 我正在使用parse.com的Android API并添加了Facebook/Twitter登录支持.这工作正常.
棘手的部分似乎正在退出.
如果我使用Twitter登录我的应用程序:
ParseTwitterUtils.logIn(UserLoginActivity.this, twitterLoginCallback);
Run Code Online (Sandbox Code Playgroud)
或使用Facebook:
ParseFacebookUtils.logInWithReadPermissionsInBackground(UserLoginActivity.this, null, facebookLoginCallback);
Run Code Online (Sandbox Code Playgroud)
我在网络对话框中提示输入我的Twitter凭据,然后允许或拒绝访问我的应用程序.一旦我允许它,我能够成功登录,并且我可以访问我的屏幕名称.一切都很好!
当我尝试登录了我的ParseUser的,我确实会退出.但是,如果我再次单击Facebook或Twitter登录按钮,我会预先验证为我之前的帐户,我无法切换帐户.
我试过了:
我的登录逻辑简单地开始:
ParseUser.logOut();
Run Code Online (Sandbox Code Playgroud)
Parse.enableLocalDatastore(this);按照我的Application建议打电话:https://stackoverflow.com/a/26338326/494356null
ParseTwitterUtils.getTwitter().setAuthToken(null);
ParseTwitterUtils.getTwitter().setAuthTokenSecret(null);使用Facebook SDK注销功能:
AccessToken.setCurrentAccessToken(null);
Profile.setCurrentProfile(null);
LoginManager.getInstance().logOut();
曾经有一Session.closeAndClearTokenInformation()所建议的在这里.但是Facebook已经弃用了Session类,它不再在SDK中了.
我真的很感激任何答案或建议.即使你只能回答推特或Facebook,但两者都不能回答,我仍然希望听到它.
我使用Deploy to heroku此页面上的按钮创建了一个heroku应用程序https://github.com/ParsePlatform/parse-server-example
我可以通过运行类似于以下返回结果的代码来检查其运行情况.
curl -X GET \
-H "X-Parse-Application-Id: ********************" \
-H "X-Parse-Master-Key: *******************" \
http://MY-APP.herokuapp.com/parse/classes/Speech
Run Code Online (Sandbox Code Playgroud)
我想更新云代码,我对如何做到这一点的理解是git克隆应用程序,进行更改,提交然后再将其推回.
但是当我跑的heroku git:clone -a MY-APP时候给了我以下警告
Cloning into 'MY-APP'...
warning: You appear to have cloned an empty repository.
Checking connectivity... done.
Run Code Online (Sandbox Code Playgroud)
而MY-APP文件夹为空.
我究竟做错了什么?
应该有什么东西吗?否则curl...命令不起作用?
编辑:这个问题和答案解决了我的问题.显然这是heroku的一个bug.如何使用MongoDB在Heroku上托管我自己的Parse Server?
parse-platform ×10
android ×5
java ×4
javascript ×3
database ×1
datetime ×1
facebook ×1
git ×1
heroku ×1
ios ×1
mobile ×1
parse-server ×1
pfimageview ×1
twitter ×1