晚上好,
首先,我刚刚将我的Parse.com数据库移植到Heroku,并且正在使用mLab mongo数据库add on。其次,用java语言编写了连接数据库的应用程序。为了将两者连接在一起,我使用了Parse4J库。
我可以成功地连接到数据库,并查看数据库中的条目,所以我想会有一个胜利。但是,当我试图在某些表中创建对象时,它并不是在数据库端创建对象。然而,在其他情况下,它工作得很好。我已经仔细检查了代码,看我是否犯了一个愚蠢的语法错误,但我看不到任何错误。
这是一个简单的方法,应该创建软件的新版本记录:
(数据库中的表称为“版本”,它有“版本”、“链接”和“最新”的参数以及默认的Parse.com创建的参数)
public void addNewVersion(){
ParseObject object = new ParseObject("version");
object.put("version", "1.3.3");
object.put("link", "www.example.com");
object.put("latest", false);
object.saveInBackground()
System.out.println("Version Saved Successfully);
}奇怪的是,没有错误打印出来,println()语句成功地打印到控制台。
谢谢您阅读这篇问题的文章,如有任何意见,将不胜感激。
:)
编辑:根据请求,这是我的主要方法,其中解析连接是初始化的:
public static void main(String args[]) {
//Establishes which operating system is being used, for look and feel purposes
getOS();
Parse.initialize("applicationId", "restAPIKey", "serverPath");
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new GUI().setVisible(true);
}
});
}Parse.initalize()方法中的参数是用相关信息填充的,尽管restAPI键不再适用于heroku,所以我不太确定是否需要允许REST功能?尽管如此,应用程序中的检索方法工作得非常好,所以我很困惑。
编辑2:好的,所以我想我应该用回调来尝试,看看是否能得到更多的信息,我很高兴看到控制台上打印了一个错误:
errorParseException [code=119, error=Permission denied for action create on class version.]发布于 2016-08-11 09:48:46
好的,在检查回调异常之后,我注意到“创建”操作被拒绝了。因此,我进入了mLab上的Schema表,并注意到create部分没有说"true“
{
"_id": "version",
"_metadata": {
"class_permissions": {
"get": {
"*": true
},
"find": {
"*": true
},
"update": {
"*": true
},
"create": {
"*": true
},
"delete": {},
"addField": {
"*": true
},
"readUserFields": [],
"writeUserFields": []
}
},
"version": "string",
"link": "string",
"latest": "boolean"}
在更改了类权限的状态后,一切都按预期进行了工作。对于最近从Parse.com迁移到Heroku并添加了MongoDB add的其他人,请检查_SCHEMA部分是否具有正确的权限,这样可以节省大量时间,并防止您认为您正在发疯。:)
https://stackoverflow.com/questions/38883934
复制相似问题