Parse.com是否支持使用条件GET etags和if-none-match使用条件GET?我正在使用第三方API,这需要将其作为必须限制,以限制对其服务器的API调用.我使用Cloud Code作为后端,将数据发送到Cordova /离子混合应用程序.谢谢
我正在尝试了解新的Parse Server并已部署在Heroku上.这很顺利,但我正在努力解决如何编写服务器端代码(云代码).我已经多次阅读了解析服务器示例,所以我必须遗漏一些东西,但我不清楚我是否应该使用Express,或者我是如何开始包含我的Cloud Code文件的.很感谢任何形式的帮助.
更新:
我找到了云文件夹,我只是在错误的地方看.我将它和index.js移动到桌面上的我的apps文件夹中.我已将main.js中的默认代码更改为自定义代码.我已经使用我的应用信息设置了index.js.现在的问题是,当我运行应用程序并尝试调用云代码函数时,我得到错误无效的功能.
我试图从objectId获取用户对象.我知道objectId是有效的.但我可以让这个简单的查询工作.这有什么问题?查询后仍未定义用户.
var getUserObject = function(userId){
Parse.Cloud.useMasterKey();
var user;
var userQuery = new Parse.Query(Parse.User);
userQuery.equalTo("objectId", userId);
userQuery.first({
success: function(userRetrieved){
console.log('UserRetrieved is :' + userRetrieved.get("firstName"));
user = userRetrieved;
}
});
console.log('\nUser is: '+ user+'\n');
return user;
};
Run Code Online (Sandbox Code Playgroud) 我知道在iOS sdk中我可以这样做
[PFCloud callFunctionInBackground:@"email" withParameters:@{@"param1": @"quantity1, @"param2": @"quantity2} block:^(NSString *result, NSError *error) {
if (error) {
//error
} else {
// make sure the set the email sent flag on the object
NSLog(@"result :%@", result);
}
}];
Run Code Online (Sandbox Code Playgroud)
但是如何使用Javascript函数执行此操作
我正在使用独立的Parse服务器,尝试向多个安装发送推送通知.
解析服务器不允许我从Cloud Code查询安装集合,返回以下错误:
Error handling request: ParseError {
code: 119,
message: 'Clients aren\'t allowed to perform the find operation on the installation collection.' } code=119, message=Clients aren't allowed to perform the find operation on the installation collection.
Run Code Online (Sandbox Code Playgroud)
Cloud Code中的查询如下所示:
var pushQuery = new Parse.Query(Parse.Installation);
pushQuery.containedIn('user', users);
pushQuery.find({ ...
Run Code Online (Sandbox Code Playgroud)
获取一组用户的安装列表并将推送发送到所有用户的正确方法是什么?
我还尝试通过Parse.Cloud.useMasterKey();在查询之前立即调用来使Cloud Code使用masterKey .没有效果,主密钥不包含在查询请求标头中.
我一直在努力保存我从HTTP请求中检索的文件几天了.这是我的代码:
Parse.Cloud.httpRequest({
url: "https://ss1.4sqi.net/img/categories_v2/food/vietnamese_88.png",
success: function(httpImgFile)
{
console.log("httpImgFile: " + String(httpImgFile.buffer));
var imgFile = new Parse.File("imgFile1.png", httpImgFile.buffer);
object.set("location", "newYork"); //object is a PFObject retrieved earlier
object.set("icon1", imgFile);
object.save(null, {
success: function(gameScore) {
response.success("saved object");
},
error: function(gameScore, error) {
response.error("failed to save object");
}
});
},
error: function(httpResponse)
{
console.log("unsuccessful http request");
response.error(responseString);
}
});
Run Code Online (Sandbox Code Playgroud)
我得到的错误是:
Failed with: TypeError: Cannot call method 'then' of undefined
at Object.b.File.save (Parse.js:2:14963)
at null.<anonymous> (Parse.js:2:30041)
at e (Parse.js:2:6339)
at Parse.js:2:7092
at g (Parse.js:2:6829)
at …Run Code Online (Sandbox Code Playgroud) javascript httprequest parse-platform pffile parse-cloud-code
编写解析云函数(使用Parse Javascript SDK),我无法检查当前用户是否具有角色"Admin".我正在查看Role类的Web视图,并且存在名为"Admin"的角色,如果我单击"View Relations"为用户显示当前用户.我怀疑它应该重要,但"Admin"是唯一的角色,当前用户是唯一具有角色的用户.最后,"Admin"角色具有公共读取的ACL,因此也不应导致任何问题.
代码如下:
...
var queryRole = new Parse.Query(Parse.Role);
queryRole.equalTo('name', 'Admin');
queryRole.equalTo("users", Parse.User.current());
queryRole.first({
success: function(result) { // Role Object
var role = result;
role ? authorized = true : console.log('Shiet, user not Admin');
},
error: function(error) {
console.log("Bruh, queryRole error");
}
})
console.log('After test: Auth = ' + authorized);
if (!authorized) {
response.error("You ain't no admin, measly user");
return;
}
...
Run Code Online (Sandbox Code Playgroud)
这导致日志中出现以下内容:
测试前:Auth = false
测试后:Auth = false
我将图像存储在Parse的托管数据库中,作为一个名为的字段imageFile.当我浏览迁移指南以将数据移出到MongoLab时,我注意到该imageFile字段不包含任何二进制数据.相反,它只包含一个文件名,如
"imageFile": "tfss-2f493d64-2801-42ac-9861-13398549f86a-file
如何将Parse中存储的所有文件都传输到另一个位置?
我正在尝试从名为的表中获取数据Book.里面Book有一个Pointer<ParseUser>保存一个用户的指针.在ParseUser具有所谓的另一个指针Pais(这意味着Country在西班牙语).所以我想从任何地方获取每一个信息Book:
var query = new Parse.Query("Book");
query.include("user");
query.include("user.pais");
query.find({
success: function(books) {
response.success(books);
},
error: function(error) {
response.error({'resp': error.code, 'message': error.message});
}
});
Run Code Online (Sandbox Code Playgroud)
我没有得到对象,只是指针:
为什么?我知道当我在iOS或Android中使用include(String key)或调用它时,它可以正常工作includeKey: NSString* key.
为什么它不能用于Javascript?
先感谢您.
问候.
拉斐尔.
编辑:
哦,我忘记了......我试过:
query.include(["user"]);
和
query.include(["user", "user.pais"]);
我见过开发人员使用它的一些例子.
第二次编辑:
我用过的最后一件事fetch就像:
Parse.Object.fetchAll(books, {
success: function(list) {
response.success(list);
},
error: function(error2) {
response.error({'resp': error2.code, 'message': error2.message});
},
});
Run Code Online (Sandbox Code Playgroud)
但也没有用.
这开始吓坏了我.
我们 的解决方法: …
我刚刚创建了一个用于在 Cloud9 上学习的解析服务器部署,当我使用 PostMan 使用 REST API 访问它时,一切正常。我现在正在尝试云功能。
我的 cloud.js 文件中有以下代码,
Parse.Cloud.define('hello', function(request, response) {
var query = new Parse.Query("Test");
query.find({
success: function(data){
response.success(query);
},
error: function(err){
response.error(err);
}
})
});
Run Code Online (Sandbox Code Playgroud)
在响应中我收到以下错误,
{
"code": 141,
"error": {
"message": "unauthorized"
}
}
Run Code Online (Sandbox Code Playgroud)
我对 PostMan 的请求看起来像这样,
只要我不尝试查询并发送简单的响应(例如 ),响应就可以response.success("OK")。
这是 Parse 的问题还是我错过了与授权相关的内容?
parse-cloud-code ×10
javascript ×5
parse-server ×3
etag ×1
httprequest ×1
ios ×1
mongodb ×1
node.js ×1
pffile ×1
rest ×1
sdk ×1
swift ×1
user-roles ×1