Reputation: 1075
I succeeded to migrate my app from Parse to Heroku, now my AppDelegate use this code:
[Parse initializeWithConfiguration:[ParseClientConfiguration configurationWithBlock:^(id<ParseMutableClientConfiguration> configuration) {
configuration.applicationId = @"xxxxxxxx";
configuration.clientKey = @"xxxxxxxx";
configuration.server = @"http://xxxxxxxx.herokuapp.com/parse";
}]];
and not
// [Parse setApplicationId:@"xxxxxxxx"
// clientKey:@"xxxxxxxx"];
// [PFUser enableRevocableSessionInBackground];
Everything works except the cloud code, when I run a cloud code, this is the error from Simulator: [Error]: Invalid function. (Code: 141, Version: 1.12.0)
Here is my cloud file path: /Users/Viny/heroku/parse-server-example/cloud/main.js
I updated and push it with the same main.js from Parse.
Here is my index.js:
// 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 || process.env.MONGOLAB_URI;
if (!databaseUri) {
console.log('DATABASE_URI not specified, falling back to localhost.');
}
var api = new ParseServer({
databaseURI: process.env.DATABASE_URI || 'mongodb://localhost:27017/dev',
cloud: process.env.CLOUD_CODE_MAIN || __dirname + '/cloud/main.js',
appId: 'xxxxxxx',
masterKey: 'xxxxxxx',
fileKey: 'xxxxxxx',
clientKey: 'xxxxxxx',
serverURL: 'http://localhost:1337/parse'
});
// Client-keys like the javascript key or the .NET key are not necessary with parse-server
// If you wish you require them, you can set them as options in the initialization above:
// javascriptKey, restAPIKey, dotNetKey, clientKey
var app = express();
// Serve the Parse API on the /parse URL prefix
var mountPath = process.env.PARSE_MOUNT || '/parse';
app.use(mountPath, api);
// Parse Server plays nicely with the rest of your web routes
app.get('/', function(req, res) {
res.status(200).send('I dream of being a web site.');
});
var port = process.env.PORT || 1337;
app.listen(port, function() {
console.log('parse-server-example running on port ' + port + '.');
});
Cloud code works as expected with Parse, but doesn't work with Heroku...
Upvotes: 1
Views: 1277
Reputation: 1075
Well, I think I've found the problem, I've two "personal apps" on Heroku for my iOS app: "chilln" (my iOS app name) and "rocky-reef-28464" (automatically created by following this tuto: https://learnappmaking.com/how-to-migrate-parse-app-parse-server-heroku-mongolab/)
I changed my configuration.server to : http://rocky-reef-28464.herokuapp.com/parse/
and now it seems to recognize the cloud code, just this error on simulator: [Error]: <null> (Code: 141, Version: 1.12.0)
Here is a screen of my personal apps on Heroku:
Should I have only one personal apps ?
chilln has the add-ons MongoLab and cfg var: "app_id", "master_key", "mongolab_url", "parse_mount". rocky-reef-28464 hasn't add-ons MongoLab but has only one cfg var: "DATABASE_URI", and has the git heroku repo (I think)
What I've to do ? Merge the two app to one ?
Upvotes: 0
Reputation: 1001
Instead of this configuration.server = @"http://xxxxxxxx.herokuapp.com/parse"; Do this configuration.server = @"http://xxxxxxxx.herokuapp.com/parse/";
Upvotes: 2