我到目前为止看到的示例应用程序和文档似乎使用Parse作为应用程序的主要(如果不仅仅是)存储解决方案,这在某些情况下很棒.
我希望将Parse与我在Android上的现有应用程序集成,该应用程序在单个数据库中使用多个SQLite表.
是否有任何示例显示Parse的用法,其中本地存储(即SQLite DB)是主存储,如果有更新需要更新/提交的更新,则数据仅在Parse和本地存储之间同步?
对于我的数据库,我有两个表,任务和日期.任务由以下组成:
和日期:
在这种情况下,我会将每一行存储为单独的ParseObject吗?有不同的任务和日期类,我可以将日期与他们的任务父母联系起来?这是推荐的方式吗?
-
编辑:我收到了Parse工程师的回复,他说可能(与本地SQLite数据库同步),但它不受支持,并且没有评论我提出的方法 - 特别是将行映射到ParseObjects.
我尝试在我的项目中导入解析框架.我确定我的项目很受欢迎,但是我找不到任何关于它是否是"电弧敏感"的信息.我的项目是基于弧的.
这是我得到的错误:
Undefined symbols for architecture i386:
"_SCNetworkReachabilityCreateWithName", referenced from:
-[PFCommandCache init] in Parse(PFCommandCache.o)
+[PFInternalUtils(Reachability) isParseReachable] in Parse(PFInternalUtils.o)
"_SCNetworkReachabilityGetFlags", referenced from:
___22-[PFCommandCache init]_block_invoke in Parse(PFCommandCache.o)
+[PFInternalUtils(Reachability) isParseReachable] in Parse(PFInternalUtils.o)
"_SCNetworkReachabilityScheduleWithRunLoop", referenced from:
-[PFCommandCache init] in Parse(PFCommandCache.o)
"_SCNetworkReachabilitySetCallback", referenced from:
-[PFCommandCache init] in Parse(PFCommandCache.o)
"_SCNetworkReachabilityUnscheduleFromRunLoop", referenced from:
-[PFCommandCache dealloc] in Parse(PFCommandCache.o)
"_SecItemAdd", referenced from:
+[PFInternalUtils saveToKeychain:data:] in Parse(PFInternalUtils.o)
"_SecItemCopyMatching", referenced from:
+[PFInternalUtils loadFromKeychain:] in Parse(PFInternalUtils.o)
"_SecItemDelete", referenced from:
+[PFInternalUtils saveToKeychain:data:] in Parse(PFInternalUtils.o)
+[PFInternalUtils deleteFromKeychain:] in Parse(PFInternalUtils.o)
"_UTTypeCopyPreferredTagWithClass", referenced from:
-[PFFile getMimeType] …Run Code Online (Sandbox Code Playgroud) ParseImageView是否在Android中缓存ParseFile.如果它缓存parseFile,我如何在我的Android设备中找到这些文件的路径.
ParseImageView imageView = (ParseImageView) findViewById(android.R.id.icon);
// The placeholder will be used before and during the fetch, to be replaced by the fetched image
// data.
imageView.setPlaceholder(getResources().getDrawable(R.drawable.placeholder));
imageView.setParseFile(file);
imageView.loadInBackground(new GetDataCallback() {
@Override
public void done(byte[] data, ParseException e) {
Log.i("ParseImageView",
"Fetched! Data length: " + data.length + ", or exception: " + e.getMessage());
}
});
Run Code Online (Sandbox Code Playgroud) 我正在使用Parse作为我的原生iOS应用程序之一的后端.我无法在Parse中更新表上的记录.首先,我查询要更新它的对象.因此,"objects"数组返回1条记录但是当我想要更新它时,我得到以下错误;
"找不到更新的对象(代码:101,版本:1.2.16)"
那么您认为我无法更新Parse中的记录?(以下是我的代码)
谢谢,E.
PFQuery *query = [PFQuery queryWithClassName:@"askedFriends"];
[query whereKey:@"questionID" equalTo:aqDt.questionID];
[query whereKey:@"fbID" equalTo:FbId];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
NSArray *postArray = objects;
PFObject *post = postArray.lastObject;
[post setObject:@"sentReply" forKey:btnSelection];
[post saveInBackground];
}
Run Code Online (Sandbox Code Playgroud) 我有一个循环设置,下载一系列图像,我将在稍后用于使用animationImages属性的动画UIImageView.我想知道我的循环中的所有块何时完成执行所以我可以开始动画,并且想知道我怎么能够告诉他们什么时候完成完成?谢谢!
for (PFObject *pictureObject in objects){
PFFile *imageFile = [pictureObject objectForKey:@"image"];
NSURL *imageFileURL = [[NSURL alloc] initWithString:imageFile.url];
NSURLRequest *imageRequest = [NSURLRequest requestWithURL:imageFileURL];
[tokenImageView setImageWithURLRequest:imageRequest placeholderImage:nil success:^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image) {
[self.downloadedUIImages addObject:image]; //This is a mutableArray that will later be set to an UIImageView's animnationImages
} failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error) {
NSLog(@"Error %@", error);
}];
}
//When I know all the blocks have finished downloading, I will then to animate the downloaded …Run Code Online (Sandbox Code Playgroud) 我发现大约1/5的测试都是冻结的,经过一些搜索后我把它缩小到了直线:
.ParseInstallation.getCurrentInstallation()saveInBackground();
我正在使用Parse 1.5.1和Android 4.4.2设备.我的应用程序类看起来像:
public class InitApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
Parse.initialize(this, "my_App_ID", "my_Client_Key");
PushService.setDefaultPushCallback(this, MainActivity.class);
System.out.println("execution DOES reach here");
ParseInstallation.getCurrentInstallation().saveInBackground();
System.out.println("execution DOES NOT reach here");
}
}
Run Code Online (Sandbox Code Playgroud)
我的设备上的行为是,我将首先看到一个空白的白色屏幕约5秒钟,然后屏幕变黑.我不确定屏幕保持黑色多长时间,因为我通常会强行关闭.我让它静置了大约10分钟,没有任何变化.我无法按下后退按钮,屏幕上的任何触摸都不起作用.我被迫使用我的主页按钮,然后强制关闭应用程序.重新打开应用程序后,它的行为和功能正常.
进一步的研究让我找到了这篇文章:https://www.parse.com/questions/android-saveinbackground-lock-the-main-thread
但是,我仍然无法找到解决方案.上述帖子中的一个建议是简单地移动此代码的位置.我在主要活动的onCreate()方法之后尝试了这一点(不要与应用程序的onCreate()方法混淆).行为似乎是正常的,直到我到达调用getCurrentInstallation.saveInBackground()代码的位置,我的应用程序冻结并且无法响应,直到我强制关闭它.
这个问题有什么解决方案吗?
我使用的是android studio 1.2 Beta 2的mac版本,建于2015年4月7日.Gradle版本2.2.1和Gradle插件版本1.1.0.
创建新项目后,默认情况下,我的app/build.gradle文件中存在以下代码.
...
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
}
Run Code Online (Sandbox Code Playgroud)
这意味着我添加到app/libs目录的任何jar文件都应该加载到我的项目中,对吗?但是,当我将Parse-1.9.0.jar添加到app/libs时,它没有被加载.我没能在MainActivity.java中使用API中的代码.
右键单击Parse-1.9.0.jar - > Add As Library ... app/build.gradle成为:
...
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile files('libs/Parse-1.9.0.jar')
}
Run Code Online (Sandbox Code Playgroud)
我很困惑为什么.不应该编译fileTree()包含所有jar文件?为什么我需要做额外的步骤?
我下载的Parse-1.9.0.jar文件来自:https://parse.com/apps/quickstart#parse_data/mobile/android/native/existing
谢谢
android gradle parse-platform android-studio android-gradle-plugin
我正在使用ParseUser进行用户管理.拥有用户名(唯一),我计划查询User类以识别用户,然后将新分数添加到"score"字段,就像排行榜一样.编码如下:
public void update_user_score(String username, int original_score, int add)
{
final int new_score = original_score + add;
ParseQuery<ParseUser> query = ParseUser.getQuery();
query.whereEqualTo("username", username);
query.setLimit(1);
query.findInBackground(new FindCallback()
{
public void done(final ParseObject object, ParseException e)
{
if (e == null)
{
object.saveInBackground(new SaveCallback()
{
public void done(ParseException e)
{
object.put("score", new_score);
object.saveInBackground();
onBackPressed();
}
});
}
}
});
}
Run Code Online (Sandbox Code Playgroud)
情况:它说明了这一点The type new FindCallback(){} must implement the inherited abstract method FindCallback.done(List, ParseException).我试过了FindCallback.done,发现它不成功.
我想问一下如何使用给定的用户名更新用户的其他字段?谢谢!
我已将我的项目更新到iOS 9,我的podfile和所有必需的文件,但它不会构建.我悲伤的根源是以下错误消息:
Type arguments cannot be applied to non-parameterized class 'BFTask'
这是唯一显示的错误,但它在两者中都显示多次PFAnalytics.h,可能更重要PFObject.h.
有人能告诉我这意味着什么,请建议一个解决方案?我希望我提供了足够的信息,但如果没有,请告诉我!
代码示例如下:在PFObject.h和中PFAnalytics.h,到处都有以下内容:
(BFTask PF_GENERIC(XXSOMECLASS *)*) someMethod;
Run Code Online (Sandbox Code Playgroud)
抛出错误.这是不是我的代码,它是PFObject.h和PFAnalytics.h以前一样说.抛出错误的函数示例PFObject.h如下
- (BFTask PF_GENERIC(NSNumber *)*)saveInBackground;
- (BFTask PF_GENERIC(NSNumber *)*)saveEventually;
- (BFTask PF_GENERIC(NSNumber *)*)deleteInBackground;
+ (BFTask PF_GENERIC(NSNumber *)*)saveAllInBackground:(PF_NULLABLE NSArray *)objects;
+ (BFTask PF_GENERIC(NSNumber *)*)deleteAllInBackground:(PF_NULLABLE NSArray *)objects;
// .... etc
Run Code Online (Sandbox Code Playgroud)
当点击停止标志时,建议是删除PF_GENERIC(NSNumber*),导致这样的方法
- (BFTask *)xxsomeMethod;
Run Code Online (Sandbox Code Playgroud)
但这并没有帮助,因为它变得更加混乱
更新02:我的内容Podfile:
# Uncomment this line to define a global platform for your …Run Code Online (Sandbox Code Playgroud) 我正在使用Parse.com作为我的后端,在Query之后如何用Parse对象中的所有数据填充数组?我怎样才能避免重新映射?例:
$scope.addContList = contacts.map(function(obj) { // re-map!!!!
return {name: obj.get("name")}; // mapping object using obj.get()
});
Run Code Online (Sandbox Code Playgroud)
我正在逐个映射我的Parse对象的属性:name:obj.get("name")等等有更好的方法吗?
$scope.addContList = [];
var ActivityContact = Parse.Object.extend("ActivityContact2");
var query = new Parse.Query(ActivityContact);
query.equalTo("activityId", $scope.objId);
query.find({
success: function(contacts) {
console.log("Successfully retrieved " + contacts.length + " contact.");
$scope.$apply(function() {
/*$scope.addContList = contacts.map(function(obj) {
return {name: obj.get("name")}; // mapping object using obj.get()
});*/
for (var i = 0; i < contacts.length; i++) {
$scope.addContList.push(contacts.ALL_PROPERTIES); // contacts.ALL_PROPERTIES does not exist, I'm looking a way to do …Run Code Online (Sandbox Code Playgroud) parse-platform ×10
android ×5
ios ×3
objective-c ×2
angularjs ×1
bftask ×1
caching ×1
frameworks ×1
gradle ×1
javascript ×1
pfobject ×1
record ×1
sqlite ×1