标签: parse-server

迁移后无法执行批处理操作

我最近完成了将Parse PHP应用程序迁移到Google Cloud托管的Parse Server.此后,像批处理动作ParseObject::saveAll(),ParseObject::destroyAll()等开始便无法大多数情况下.我正在考虑将此报告为GitHub上的错误,但我想确保它不仅仅是我的实例.

我甚至无法为destroyAll重现GitHub PHP SDK测试代码:

...
$o1 = ParseObject::create('TestObject');
$o2 = ParseObject::create('TestObject');
$o3 = ParseObject::create('TestObject');
ParseObject::saveAll([$o1, $o2, $o3]);
ParseObject::destroyAll([$o1, $o2, $o3]);
...
Run Code Online (Sandbox Code Playgroud)

这段代码和我的应用程序对批处理操作的使用都会在PHP上抛出以下类型的异常(在此示例中,saveAll抛出错误):

未捕获的异常'Parse\ParseException',消息'无法路由批处理路径/ 1/classes/TestObject'

调试显示Parse Server返回错误代码107,根据文档意味着无效JSON.我不熟悉REST API,但是对于这个例子,发送的数据是

{ "请求":[{ "方法": "POST", "路径": "/ 1 /类/的TestObject", "体":[]},{ "方法": "POST", "路径":"/1 /类/的TestObject", "体":[]},{ "方法": "POST", "路径": "/ 1 /类/的TestObject", "体":[]}]}

哪个是有效的JSON.

批量操作在迁移之前正常工作.PHP版本是5.6.任何帮助表示赞赏.如果可以重现错误,我将在GitHub上创建一个问题.

php json parse-platform parse-server

2
推荐指数
1
解决办法
598
查看次数

解析服务器 - 如何在Heroku上启用REST API密钥

我正在从Parse.com迁移到Heroku ...我已经成功安装了Parse Server,但似乎我可以通过PHP SDK连接到我的类而无需主密钥或restapi密钥.

根据说明,我在index.js中添加了restApiKey:

var api = new ParseServer({
   databaseURI: databaseUri || 'mongodb://localhost:27017/dev',
   cloud: process.env.CLOUD_CODE_MAIN || __dirname + '/cloud/main.js',
   appId: process.env.APP_ID || 'xxxxxx',
   masterKey: process.env.MASTER_KEY || 'zzzzz',
   restAPIKey: 'yyyyyy',
   serverURL: process.env.SERVER_URL || 'http://localhost:1337/parse',
   liveQuery: {
     classNames: ["Posts", "Comments"]
}
});
Run Code Online (Sandbox Code Playgroud)

我已提交此代码并部署在heroku上.但是,当我尝试使用PHP时:

ParseClient::initialize('xxxx', '', '');
Run Code Online (Sandbox Code Playgroud)

如果将Rest Key值留空,则Parse 不会抛出未经授权的错误.但是,如果我对Parse.com上的设置做同样的事情,它确实会引发错误.

我错过了什么?谢谢

php heroku parse-platform parse-server

2
推荐指数
1
解决办法
456
查看次数

是否可以在beforeSave方法中检查是否使用了解析主键?

在我的应用程序中,没有重复是很重要的,所以我有以下代码:

Parse.Cloud.beforeSave("Thing", function(request, response) {
    var newEntryThing = request.object;
    var thingId= newEntryThing.get("thingId");
    var queryThings= new Parse.Query("Thing");
    queryThings.equalTo("thingId", thingId);

    queryThings.first({
        success: function(results) {
            if(results) {
                response.error({errorCode:400,errorMsg:"Thing already exist"});
            } else {
                response.success();
            }
        },
        error: function(error) {
            response.success();
        }
    });
});
Run Code Online (Sandbox Code Playgroud)

到目前为止,这已经可以实现此目的,问题在于,由于逻辑原因,即使Parse仪表板也无法再更新此类。我在想的是先检查是否使用万能键调用该方法(如果是),那么将忽略此逻辑并允许更新。如果使用了Parse主密钥,是否可以在此beforeSave方法中签入?

javascript node.js parse-platform parse-server

2
推荐指数
1
解决办法
433
查看次数

解析错误:无法使用 php sdk 修改用户

我正在尝试使用以下代码修改用户。

$queryUsers = new ParseQuery("_User");
$queryUsers->equalTo("objectId", $userId);        
$resultsUsers = $queryUsers->find();  
$updateUsers = $queryUsers->first(); 
$updateUsers->set("status", $status);                        
$updateUsers->save();     
Run Code Online (Sandbox Code Playgroud)

但是解析 SDK 返回以下错误。

遇到未捕获的异常

类型:解析\解析异常

消息:无法修改用户 n7ZERX6Fls。

文件名:/var/www/html/mementuum_admin/application/third_party/parse-php-sdk-master/src/Parse/ParseClient.php

我修改了其他几个表,但无法在解析中修改用户表。

请帮忙。

php sdk parse-server back4app

2
推荐指数
1
解决办法
478
查看次数

Parse-JS-SDK,matchesKeyInQuery 不适用于 objectId?

javascript "parse-server": "^2.6.3", "parse": "^1.10.0",

我有三个表?Member? CircleMemberCircle

Circle有一个名为member?的指针字段,表示谁创建了circle?

并且MemberCircle有两个指针归档,member并且circle? 该member谁加入圈子的手段?

我想查询成员创建和加入的圈子?但是看到的圈子matchesKeyInQuery不适用于objectId?

const member = new Parse.Object('Member')
member.id = 'memberid'
const queryPage = new Parse.Query('Circle')
const queryOwn = queryPage.equalTo('member', member).equalTo('status', 1)
const queryJoin = new Parse.Query('Circle').matchesKeyInQuery('objectId', 'circle', new Parse.Query('MemberCircle').equalTo('member', member))
Run Code Online (Sandbox Code Playgroud)

Parse.Query.or(queryOwn, queryJoin).limit(15).skip(prePage * pageSize)

查询语句怎么写?

javascript parse-platform parse-server

2
推荐指数
1
解决办法
574
查看次数

解析服务器 - 从包含的对象中选择几个字段

是否可以仅在通过检索的对象上使用.select(JS)/ selectKeys(Android).include()

比如A类有一个指向B类的指针,当我查询A类的时候,我想要的是A类的所有内容和B类的几个选定的字段,这可能吗?

parse-platform parse-android-sdk parse-javascript-sdk parse-server back4app

2
推荐指数
1
解决办法
601
查看次数

如何使用 New Relic 跟踪解析服务器的类名?

添加 New Relic APM 跟踪 Parse Server 时,对 Cloud Code 函数和类的调用显示为:

/parse/classes/:className
/parse/functions/:functionName
Run Code Online (Sandbox Code Playgroud)

相反,我想将它们显示为:

/parse/classes/myClass
/parse/functions/myFunction
Run Code Online (Sandbox Code Playgroud)

对于 Cloud Code 函数调用,我可以设置事务名称:

Parse.Cloud.define("myFunction", async(request) => {
    newrelic.setTransactionName("myFunction");
    //...
});
Run Code Online (Sandbox Code Playgroud)

但是如何跟踪所有对类的调用的名称?

newrelic parse-platform parse-server

2
推荐指数
1
解决办法
102
查看次数

本地主机解析与android模拟器的集成

我正在尝试在我的本地主机上设置解析服务器并尝试连接到我的应用程序模拟器。

这是我的解析代码

// Example express application adding the parse-server module to expose Parse
// compatible API routes.

var express = require('express');
var ParseServer = require('parse-server').ParseServer;

var databaseUri = process.env.DATABASE_URI;

var api = new ParseServer({
  databaseURI: databaseUri || 'mongodb://abc:27017/parse',
  cloud: process.env.CLOUD_CODE_MAIN || __dirname + '/cloud/main.js',
  appId: process.env.APP_ID || 'chat-test',
  masterKey: process.env.MASTER_KEY || 'chat-test', //Add your master key here. Keep it secret!
  serverURL: process.env.SERVER_URL || 'http://localhost:1337',  // Don't forget to change to https if needed
  facebookAppIds: 'abc' //FaceBook App ID Keys. Comma …
Run Code Online (Sandbox Code Playgroud)

java android android-emulator parse-platform parse-server

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

解析服务器云代码 destroyAll 失败并出现无用的错误

我正在将一些以前工作的云代码更新到新的 Parse Server。我已经用传递 useMasterKey 的新方法更新了它。

当 resultStations 数组被填充时,查询部分似乎正在工作,但删除失败。

Parse.Cloud.afterDelete("Workout", function(request) {

query = new Parse.Query("WorkoutStation");

query.equalTo("workout", request.object);

query.find({

    success: function(resultingStations) {

        console.log('Found these to delete:' + resultingStations);

        Parse.Object.destroyAll(resultingStations, {
            success: function() {
                console.log('Did successfully delete');
            },
        error: function(error) {
            console.error("Error deleting related workout stations " + error.code + ": " + error.message);
        }
        }, { useMasterKey: true });

    },

    error: function(error) {
        console.error("Error finding related workout stations " + error.code + ": " + error.message);
    }

}, { useMasterKey: true …
Run Code Online (Sandbox Code Playgroud)

parse-cloud-code parse-server

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

实验室云中的 fs.chunks 和 fs.files 是什么

我正在将数据保存到 mlab 存储中,但数据用完了,因此我进入我的帐户并意识到 fs.chunks 中有 490mb 的数据。我可以删除 fs.chunks 和 fs.files 类吗?或者会发生非常糟糕的事情。我对这两类课程感到非常困惑,因此我们将不胜感激。我需要 fs.chunks 和 ds.files

heroku mongodb mlab server parse-server

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