我已经在heroku上移动了解析服务器,并且还将数据库从parse.com移动到了mangolab.当我从我的Android应用程序发出请求时,我收到以下错误.
com.parse.ParseRequest$ParseRequestException: bad json response
Run Code Online (Sandbox Code Playgroud)
应用请求
ParseQuery<ParseObject> query = ParseQuery.getQuery("sport");
query.findInBackground(new FindCallback<ParseObject>() {
''''''''''''
...........
});
Run Code Online (Sandbox Code Playgroud)
注意: - 1.我正在使用android parse sdk(v1.13.0)
- 2. Android studio
- 3.我的Parse初始化代码是
Parse.initialize(new Parse.Configuration.Builder(getApplicationContext())
.applicationId("mTAb2txgEHPy4fbxxxx").clientKey("KpKKNtKxxxxxPsppS0ovA")
.server("http://raxxx-beyond-20009.herokuapp.com/parse").build());
Run Code Online (Sandbox Code Playgroud)
- 4.我在Manifest文件中添加了以下Permission
uses-permission android:name="android.permission.INTERNET"
uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"
Run Code Online (Sandbox Code Playgroud)
- 5.我跟着下面的文章并实现了这样的一切.
https://learnappmaking.com/how-to-migrate-parse-app-parse-server-heroku-mongolab/
- 5.1.我也是我的heroku帐户(heroku.com)中的mongodb连接字符串,它显示正确.
- 5.1.2 - 我还确认了我的heroku帐户URL(我在第3点的解析初始化过程中通过)
- 6.我也尝试使用解析android sdk(v1.12.0)但没有成功.(parse.initilize(........).server(....)在这个版本中没有实现)
-7.的build.gradle(模块:APP)
compile files('libs/Parse-1.13.0/Parse-1.13.0.jar')
Run Code Online (Sandbox Code Playgroud) 我正在托管Parse Server开源项目.我有我所有的云功能cloud/main.js.这个文件有点太大了.我怎么能拥有多个云文件?
我正在运行Parse Server(https://github.com/ParsePlatform/parse-server-example)的干净Heroku和MLab安装,我使用Parse Server Dashboard控制它(https://github.com/ParsePlatform/parse-dashboard).
我可以进行Rest API调用并创建新类.如何阻止通过API调用(登录用户或匿名)创建新类?
看起来目前在Parse Server Dashboard中没有对此的控制.
尝试启动仪表板时出现错误:'parse-dashboard' 不是内部或外部命令,也不是可运行的程序或批处理文件。”
在此之前,我输入了命令“npm install -g parse-dashboard”,但无济于事。
所以,我是 Android Studio 的新手。我正在一步步学习在线课程。我在 AWS 上使用 ParseServer。我已经成功获取了我的 appId 等,并且可以直接从浏览器连接 Java SSH 客户端。我的应用程序可以成功将信息存储在 ParseServer 中,但我无法访问解析仪表板。当我尝试时,它要求我输入我的用户名和密码——我没有。
我找到了一个文件(在 bitnami 终端中),我认为我应该在这里为自己创建一个帐户?
# /home/bitnami/apps/parse/.forever/config.json
{
"root": "/opt/bitnami/apps/parse/.forever",
"pidPath": "/opt/bitnami/apps/parse/.forever/pids",
"sockPath": "/opt/bitnami/apps/parse/.forever/sock",
"loglength": 100,
"logstream": false,
"columns": [
"uid",
"command",
"script",
"forever",
"pid",
"id",
"logfile",
"uptime"
]
}
Run Code Online (Sandbox Code Playgroud) parse-platform parse-android-sdk parse-server parse-dashboard
我正在尝试从iOS客户端调用解析云函数,但response.success()函数似乎为空。我收到一条错误消息,说response.success不是服务器上的函数。
这是我的解析云函数:
Parse.Cloud.define("pruebaQuery", function(request, response) {
const query = new Parse.Query("grupo");
query.equalTo("name", request.params.grupoName);
query.find()
.then((results) => {
for (let i = 0; i < results.length; ++i) {
var grupoId = results[i].get("grupoId");
console.log("GrupoId: " + grupoId);
}
response.success("Success pruebaQuery");
})
.catch(() => {
response.error("grupo lookup failed");
});
});
Run Code Online (Sandbox Code Playgroud)
这是我从iOS客户端调用的方式:
[PFCloud callFunctionInBackground:@"pruebaQuery" withParameters:@{@"grupoName": @"Kinder 3"}
block:^(NSString *object, NSError *error) {
if (!error) {
NSLog(@"CLOUDCode/SUCCESS: %@", object);
}
else {
NSLog(@"CLOUDCode/ERROR %@ code: %ld", error, (long)[error code]);
}
}];
Run Code Online (Sandbox Code Playgroud)
有什么线索为什么response.success()函数不起作用?
以下大部分内容都是通过解析仪表板完成的,所以有点啰嗦,但我理解代码只是不理解关系。
我正在设置 Parse.Roles,似乎每个单独的 Parse.Object 都需要设置角色才能访问给定的 Parse.Object。例如,对象 ACL 需要包含“管理员”和“版主”(具有各自的权限),以便管理员或版主具有访问权限。
由于父角色和子角色都是可能的,因此使用“组织”角色设置 Parse.Object 的 ACL 是有意义的,然后由子角色进一步修改该 ACL。因此,“组织”内的“查看者”无法写入,但“组织”内的“管理员”可以读取/写入。我尝试了多种方法来执行此操作 - 将一个用户关联到“查看者”,将一个用户关联到“组织”内的“管理员”,但这似乎不起作用。
我当前的解决方案:手动/以编程方式设置每个 Parse.Object ACL 与多个预设角色。例如,使用 ACL 角色“Viewer”和“Admin”解析类“Person”。
问题:如果我想在将来为同一组织创建不同的角色,我是否需要循环遍历每个 Parse.Object 并为每个过去的对象手动设置新角色?
这些关系应该由父组织管理,这样就不需要手动完成,这是有道理的,但这似乎不起作用。
任何答案、想法或链接都值得赞赏。
我正在开发一个 Apple TV 应用程序,该应用程序使用 Parse-Server 作为后端和 RxSwift,并且我正在尝试建立一个类似于电视流媒体应用程序上的身份验证系统。
现在,我在解析数据库中有一个 AuthenticationCode 对象,其中包含代码、设备 ID 和会话令牌列。我正在尝试使用 RxSwift 的间隔每 5 秒对对象执行一次获取,并检查会话令牌列是否已填写。
这是代码:
func poll(authorizationCode: AuthorizationCode) -> Observable<AuthorizationCode> {
return Observable<Int>.interval(5, scheduler: MainScheduler.instance).flatMap({ _ in
return Observable<AuthorizationCode>.create { observer -> Disposable in
authorizationCode.fetchInBackground(block: { (authorizationCode, error) in
if let authorizationCode = authorizationCode as? AuthorizationCode {
observer.onNext(authorizationCode)
if authorizationCode.sessionToken != nil {
observer.onCompleted()
}
} else if let error = error {
observer.onError(error)
}
})
return Disposables.create()
}
})
}
Run Code Online (Sandbox Code Playgroud)
每次获取对象时,我都会发出 onNext 事件,并且我想在会话代码存在时终止序列。
我在这段代码中遇到的问题是,即使在填写了会话令牌并调用了 onCompleted 之后,计时器仍然会触发,并且订阅者永远不会获得 onCompleted …
我正在尝试修改一个对象的 ACL,而不创建另一个对象。我不希望删除或覆盖当前的 ACL。每当我使用object.setACL()它时,它都会覆盖当前的 ACL。
有没有办法保存修改后的ACL而不覆盖它?
我们现在使用 parse-server 面临的最大问题之一是重复。尽管我们已经实现了 Parse 云代码来防止此类事件通过beforeSave,afterSave同时添加了外部中间件以在保存之前检查现有对象,但我们仍然面临着重复,特别是在并发操作上。
这是我们防止特定类重复的代码:
Parse.Cloud.beforeSave("Category", function(request, response) {
var newCategory = request.object;
var name = newCategory.get("name");
var query = new Parse.Query("Category");
query.equalTo("name", name);
query.first({
success: function(results) {
if(results) {
if (!request.object.isNew()) { // allow updates
response.success();
} else {
response.error({errorCode:400,errorMsg:"Category already exist"});
}
} else {
response.success();
}
},
error: function(error) {
response.success();
}
});
});
Parse.Cloud.afterSave("Category", function(request) {
var query = new Parse.Query("Category");
query.equalTo("name", request.object.get("name"));
query.ascending("createdAt");
query.find({
success:function(results) {
if (results && results.length …Run Code Online (Sandbox Code Playgroud) parse-server ×10
node.js ×4
heroku ×2
mongodb ×2
acl ×1
android ×1
cloud ×1
dashboard ×1
git ×1
ios ×1
javascript ×1
parse-cloud ×1
polling ×1
rx-swift ×1
swift ×1