标签: parse-platform

扩展原型功能而不覆盖它

我需要修复saveParse.Object库函数中的错误.但是,当我尝试save在我的覆盖原型中调用原始函数时,它会递归循环,直到堆栈溢出!

Parse.Object.prototype.save = function (arg1, arg2, arg3) {
    fixIncludedParseObjects(this);

    Parse.Object.prototype.save.call(this, arg1, arg2, arg3); // endless loop
};
Run Code Online (Sandbox Code Playgroud)

如何更改无限循环线以调用解析所产生的原始函数?

谢谢!

javascript prototype parse-platform

10
推荐指数
3
解决办法
8870
查看次数

在使用PHP时,是否值得用Parse.com替换MySQL?

对于基于PHP的应用程序,使用Parse.com而不是MySQL是一个好主意吗?如果是的话,沿着这条路走下去的好处和缺点是什么?如果你使用解析,MySQL如何加入工作?

php mysql parse-platform

10
推荐指数
1
解决办法
7515
查看次数

Cordova/Phonegap iOS Parse-Push插件

我花了很多时间为Android和iOS平台的解析推送通知找到正确的cordova插件.

我的要求是:

  1. 接收解析推送通知(在Android和iOS中)
  2. 能够将所有传入的推送通知存储在移动本地存储Sqlite中.

我已经为Android和iOS平台尝试了以下所有解析push cordova插件.

  1. https://github.com/avivais/phonegap-parse-plugin
  2. https://github.com/taivo/parse-push-plugin
  3. https://github.com/campers/parse-push-plugin
  4. https://github.com/manishiitg/parse-push-plugin

对于Android:所有上述插件都完美地满足我上面提到的要求.

对于iOS:只有第一个插件,即https://github.com/avivais/phonegap-parse-plugin正在运行.而且我也无法在本地存储sqlite中保存通知.这意味着只有我的第一个要求得到满足,但不是我的第二个要求.

剩下的插件(即第2,第3,第4)的所有github页面都指出:

"请注意,我只是在这个分支的Android方面工作.iOS方面还没有更新."

是否有任何插件适用于Android和iOS平台以满足我的2个要求?

(要么)

如果两个平台都没有通用插件,那么如何在iOS sqlite中存储传入的插件?

请帮我.提前致谢.

apple-push-notifications ios cordova parse-platform

10
推荐指数
1
解决办法
3033
查看次数

将curl GET转换为javascript fetch

我可以使用以下命令从解析中成功检索对象:

curl -X GET \
-H "X-Parse-Application-Id:1231231231" \
-H "X-Parse-REST-API-Key: 131231231" \
-G \
--data-urlencode 'where={"uid":"12312312"}' \
https://api.parse.com/1/classes/birthday`
Run Code Online (Sandbox Code Playgroud)

但我正在努力将其转换为javascript,使用下面的代码我会得到状态为的响应200.我假设错误是将data-urlencode转换为数据:

var getObject = function {
    var url = "https://api.parse.com";
    url += '/1/classes/birthday';

    fetch(url, {
        method: 'GET',
        headers: {
            'Accept': 'application/json',
            'X-Parse-Application-Id': '12122',
            'X-Parse-REST-API-Key': '12121',
            'Content-Type': 'application/json',
        },
        data: '{"where":{"uid":"12312312"}}'

    })
    .then(function(request, results) {
        console.log(request)
        console.log(results)
    })
}
Run Code Online (Sandbox Code Playgroud)

谢谢!

javascript curl parse-platform react-native

10
推荐指数
2
解决办法
2万
查看次数

在线/离线数据管理

我必须创建一个功能类似于联系人应用程序的应用程序.您可以在客户端的iPhone上添加联系人,并将其上传到客户端的iPad上.如果客户在iPad上更新联系人,则应在iPhone上更新.

其中大部分都是相当直接的.我Parse.com用作我的后端并在本地保存联系人Core Data.我遇到的唯一问题是在用户离线时管理联系人.

假设我有iPhone和iPad.它们目前都具有相同版本的在线数据库.我的iPhone现在处于离线状态.现在是上午9点.

上午10点,我更新了iPad上的联系人的电话号码.它在本地和在线保存更改.上午11点我更新了iPhone上同一联系人的电子邮件地址,但我仍然处于离线状态.

中午,我的iPhone连接到互联网并检查服务器是否有变化.它看到它的更改比最新更新(检查updatedAt时间戳属性)更新,因此它不会下载联系人的新电话号码("已过时"),而是覆盖电话号码和电子邮件地址(更新新的电话号码到它的旧版本,因为它在上午10点的电话号码更新期间处于离线状态,并且其更改应该是最近的更新).

我该如何管理上面遇到的在线/离线问题?我能想到的解决方案是在联系人的每个属性上保留更新的时间戳,而不仅仅是updatedAt整个联系人的常规属性,例如,更新名字的时间,更新姓氏的时间,然后手动检查是否有离线设备每个属性都有更新的更改,而不是覆盖整个对象,但这似乎很草率.

我还在考虑在每个对象上都有一个updatedLocallyupdatedOnlinetimestamp属性Core Data.这样如果两者不匹配,我可以进行差异检查,并使用最新的冲突,但这似乎仍然不是最干净的解决方案.有没有其他人遇到类似的东西?如果是这样,你是如何解决的?

认为 Pseudocode/Summary是什么涵盖了每个测试用例,但仍然不是很优雅/完整:

Parse.com上的2个实体:联系和联系历史

联系人有第一个,最后一个,电话,电子邮件,在线更新

联系历史记录具有要引用的联系人的主键以及具有历史记录的相同属性.例如first: [{value:"josue",onlineUpdate:"9AM"},{value:"j",onlineUpdate:"10AM"},{value:"JOSUEESP",onlineUpdate:"11AM"}]

1核心数据实体,联系方式:

联系人有第一个,最后一个电话,电子邮件,onlineUpdate和offlineUpdate(重要提示:这仅适用于Core Data,不适用于Parse)

for every contact in parse database as onlineContact {
    if onlineContact does not exist in core data {
        create contact in core data
    }
    else {
        // found matching local object to online object, check for changes
        var localContact = core data contact with …
Run Code Online (Sandbox Code Playgroud)

database algorithm core-data ios parse-platform

10
推荐指数
1
解决办法
968
查看次数

iOS与Parse.PFUser.currentuser()没有被缓存.应用程序重启后返回nil

我正在用快速的Parse构建一个应用程序.应用程序停止并再次运行后,PFUser.currentuser()始终返回nil.我正在使用iOS模拟器并启用了本地数据存储.我正在使用这样的东西 -

if PFUser.currentuser() == nil {
// Perform segue to login screen
}
Run Code Online (Sandbox Code Playgroud)

登录我正在使用

PFUser.loginWithUsernameInBackground(...)
Run Code Online (Sandbox Code Playgroud)

当前用户保持不变,直到应用程序重新启动,之后它将重置为nil.我甚至试图固定当前用户,但它不起作用.如何检查当前用户是否在本地缓存.任何帮助,将不胜感激.谢谢.

login ios parse-platform swift pfuser

10
推荐指数
1
解决办法
646
查看次数

在iOS上解析saveInBackgroundWithBlock崩溃

我正在成功地将一些数据添加到我的解析类(表)中.

保存成功完成后(我可以在网站上看到数据),我的应用程序崩溃而不在控制台上留下任何消息.我尝试使用"启用僵尸对象"设置来获取消息.这是我得到的消息,它与我正在做的事无关:

-[UIActivityIndicatorView release]: message sent to deallocated instance 0x126d16780
Run Code Online (Sandbox Code Playgroud)

UIActivityIndicatorView我整个项目都没有.

这是我保存数据的方式:

var currentUser = PFUser.currentUser()!

        var userCase = PFObject(className: "Case")
        userCase.relationForKey("user").addObject(currentUser)
        userCase["caseCode"] = "test_code"
        userCase.saveInBackgroundWithBlock {
            (success: Bool, error: NSError?) -> Void in
            if (success) {
                // The object has been saved.
                println("saved")
            } else {
                // There was a problem, check error.description
                println("error occurred: \(error?.description)")
            }
        }
Run Code Online (Sandbox Code Playgroud)

Swift SDK版本:1.7.5 Xcode版本:6.4

有没有人遇到过这样的问题?

更新:此错误不会在模拟器上发生(在iPhone 5,iPhone 5S,iPhone 6上测试),并且在首次运行时不会在设备上发生.

尝试删除并重新安装该应用程序.

更新2:从AppDelegate 删除PFFacebookUtils.initializeFacebookWithApplicationLaunchOptions(launchOptions)或更改它PFFacebookUtils.initialize()修复了问题,但我认为我需要使用initializeFacebookWithApplicationLaunchOptions(launchOptions).我现在有另一个问题.

ios nszombieenabled parse-platform

10
推荐指数
1
解决办法
495
查看次数

查询中的CloudCode多个查询不起作用

我正在尝试使用云功能找到我之前没有连接的用户.我正在使用的桌子很少:

  1. 用户表 - 添加了"hasLight"布尔列的标准表
  2. 连接表:
    • 'user' - 指向用户的指针(第一面)
    • 'userId' - 用户的objectId
    • 'user2' - 指向我们连接的用户的指针
    • 'userId2' - 我们连接的用户的objectId
  3. 可用表:
    • 'userObjectId' - 用户的objectId
    • '柜台' - 号码

代码:

Parse.Cloud.define("findFreshUser", function(request, response) {

    Parse.Cloud.useMasterKey(); // For reading all the table //

    var user = Parse.User.current();

    // Get all possible users we already connected to //
    var connectQuery = new Parse.Query("Connected");
    connectQuery.include('userId2');
    connectQuery.equalTo("userId", Parse.User.current().id);

    // Get all users with availability of '0' //
    var availableQuery = new Parse.Query("Available");
    availableQuery.notEqualTo("counter", 0);  

    var freshUserQuery = new Parse.Query(Parse.User); …
Run Code Online (Sandbox Code Playgroud)

javascript parse-platform parse-cloud-code

10
推荐指数
1
解决办法
117
查看次数

无法将'[String:String?]'类型的值转换为预期的参数类型'[NSObject:AnyObject]?'

当我使用Parse 1.8.5将数据上传到Parse时,这个云代码在"params"中有编译错误,我无法调试它.

       let params = ["phoneNumber" : userPhoneNumber, 
                    "username": username,
                    "password": userPassword,
                    "Email": userEmail
                     ]  

        PFCloud.callFunctionInBackground("sendCode", withParameters: params, block: 
              { (response: AnyObject?, error: NSError?) -> Void in
            if response?.localizedDescription != nil {
                print(error)
                var alert = UIAlertView(title: "Failure", message: "SignUp Error", delegate: self, cancelButtonTitle: "OK")
                alert.show()
            } else {
                self.activityIndicator.stopAnimating()
            }
        })
Run Code Online (Sandbox Code Playgroud)

nsobject parse-platform swift ios9

10
推荐指数
1
解决办法
1万
查看次数

更新Parse安装对象会将其删除

我使用REST API调用创建一个安装对象,如下所示:

curl -X POST \
-H "X-Parse-Application-Id: ${APPLICATION_ID}" \
-H "X-Parse-REST-API-Key: ${REST_API_KEY}" \
-H "Content-Type: application/json" \
-d '{
    "deviceType": "ios",
    "deviceToken": "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",
    "channels": [
      ""
    ]
  }' \
https://<your.parseprovider.here>/1/installations
Run Code Online (Sandbox Code Playgroud)

安装对象已创建并由响应指示:

{
"objectId": "EmqGmZXGEm",
"createdAt": "2017-02-15T10:13:18.647Z"
}
Run Code Online (Sandbox Code Playgroud)

现在假设我想更新channels字段以在安装对象中包含"foo"通道,我可以简单地发出一个调用:

curl -X PUT \
-H "X-Parse-Application-Id: ${APPLICATION_ID}" \
-H "X-Parse-REST-API-Key: ${REST_API_KEY}" \
-H "Content-Type: application/json" \
-d '{
    "channels": [
      "",
      "foo"
    ]
  }' \
https://<your.parseprovider.here>/1/installations/EmqGmZXGEm    
Run Code Online (Sandbox Code Playgroud)

然后响应表明成功:

{
"updatedAt": "2017-02-15T10:18:31.055Z"
}
Run Code Online (Sandbox Code Playgroud)

但是,当我像这样执行PUT调用时(如在REST API文档中,请注意包含deviceType和deviceToken字段):

curl -X PUT \
-H "X-Parse-Application-Id: …
Run Code Online (Sandbox Code Playgroud)

delphi parse-platform delphi-10.1-berlin

10
推荐指数
1
解决办法
204
查看次数