x

Invalid e-mail address
x

Sorry, authentication failed
x

Passwords do not match

Frequently Asked Questions

Get answers for some of our most commonly asked questions about Parse Server and Back4App.

The Back4App platform is built on a Parse Server open source base. It is developed using NodeJS and the Express framework and so it supports npm modules. You can invoke the following modules using JavaScript functions (Cloud Code):

Plivo, Sendgrid, Stripe, Twilio, Underscore, Braintree, Express, Kerberos, Mailgun-js, Mandrill-api, Moment, MongoDB, Morgan, Parse-image, Parse-server.

If you need an additional npm module please contact us via website chat.

There are a few areas where Parse Server is incompatible with the Parse hosted backend. The Back4App platform provides a service that is much closer in functionality to hosted Parse. To summarize, we can group features compatibility into three main categories:

  • Does not support
  • Supports in a different way
  • New on Parse Server

(Note, features not mentioned are the same as their Parse server counterparts).

Does not Support: Analytics, Previous SDK versions (1.7.0), iOS In-App Purchase, Background Jobs, Client Push, Android Export GCM registration IDs, Parse Push Notifications Service - PPNS (Android and IoT), multiple App instances per account(per Parse Server Instance), WebHooks.

NOTE: Back4App supports most of these features; contact us for additional details.

In a different way: Authentication, Cloud Code, Network requests, Class Level Permissions, File hosting, Session features (Revocable Sessions), Social Login, Welcome and verification email.

New on Parse Server: Client Class Creation, Install new Cloud Modules, Multiple Social Logins.

Back4App fully supports Push Notifications for iOS and Android. You can find the step-by-step guide on how to setup this service.

Headquarters - 440 N Wolfe Road, Sunnyvale, CA

Engineering - 663 Salmao Avenue, Sao Jose dos Campos, SP, Brazil.

It is also possible to migrate from database hosting providers (mLab, ourSky), infrastructure providers (AWS, Heroku, Digital Ocean) and even Parse Hosting providers.

Please contact us through website chat and schedule a meeting for an assisted migration with our engineering team. If you use a self-hosting solution and want an optimized Parse Server/MongoDB hosting with peace of mind, let us know and we will be happy to assist you.

Our servers are located at Amazon AWS North Virginia. The Back4App infrastructure setup takes the following factors into consideration:

  • Scalable Design – applications hosted at Back4App are automatically scaled.
  • Redundancy – a fully redundant server structure minimizes downtime.
  • Data Backup – the data stored at Back4App is safe, and an automated backup routine is implemented.
  • Performance – Back4App server architecture was set up to maximize apps performance and avoid delays.

If you migrate from Parse.com using their migration tool, the Parse Files are not migrated from their original storage location. In this situation the following three conditions will apply:

  1. Files saved before the migration remain on Parse.com,
  2. Files saved after the migration will still be on Parse.com (using the Parse API),
  3. Files saved after the migration will be on Back4App when they are uploaded with the Back4App API.

The key point to absorb is that if you still use the Parse API to upload files, they remain stored on Parse.

However, if you work with the Back4App API it handles both those files that are in Back4App and files that are in Parse.com, but Parse.com cannot handle the files stored on Back4App's S3 bucket. Consequently, if you move your files now from Parse.com to Back4App, those customers who have not yet updated their apps will not be able to see the existing files.

Back4App recommends:

  1. Migrate the database, update the app and publish it in the app store.
  2. Wait for your customers to update their apps.
  3. After all your customers update their apps, migrate those files.

Sign up now and check this feature

You will likely need to make several changes to your Cloud Code to port it to Parse Server.

No current user

Each Cloud Code request is now handled by the same Parse Server instance, and therefore there is no longer a concept of a "current user" for each Cloud Code request. If your code uses Parse.User.current(), you should use request.user instead. If your Cloud function relies on queries and other operations performed for the user who initiated this Cloud Code request, you must pass the user's sessionToken as a parameter for this particular operation.

Consider a messaging app where every message object is set up with an ACL that only provides read-access to a limited set of users, for example, the author of the message and the recipient. To get all the messages sent to the current user you may have a Cloud function similar to this one:

// Parse.com Cloud Code
Parse.Cloud.define('getMessagesForUser', function(request, response) {
 var user = Parse.User.current();
 var query = new Parse.Query('Messages');
 query.equalTo('recipient', user);
 query.find()
   .then(function(messages) {
     response.success(messages);
   });
});

If this function is ported over to Parse Server without any modifications, you will first notice that your function is failing to run because of Parse.User.current() is not recognized. If you replace Parse.User.current() with request.user, the function will run successfully but you may still find that it is not returning any messages at all. That is because query.find() is no longer running within the scope of request.user and therefore it will only return publicly-readable objects.

To make queries and write as a specific user within Cloud Code, you need to pass the user's sessionToken as an option. The session token for the authenticated user making the request is available in request.user.getSessionToken().

The ported Cloud function would now look like this:

// Parse Server Cloud Code
Parse.Cloud.define('getMessagesForUser', function(request, response) {
 var user = request.user; // request.user replaces Parse.User.current()
 var token = user.getSessionToken(); // get session token from request.user
 var query = new Parse.Query('Messages');
 query.equalTo('recipient', user);
 query.find({ sessionToken: token }) // pass the session token to find()
   .then(function(messages) {
     response.success(messages);
   });
});

Master key must be passed explicitly

Parse.Cloud.useMasterKey() is not available in Parse Server Cloud Code. Instead, pass useMasterKey: true as an option to any operation that requires the use of the master key to bypass ACLs and/or CLPs.

Consider you want to write a Cloud function that returns the total count of messages sent by all of your users. Since the objects in our Message class are using ACLs to restrict read access, you will need to use the master key to get the total count:

Parse.Cloud.define('getTotalMessageCount', function(request, response) {
 // Parse.Cloud.useMasterKey() <-- no longer available!
 var query = new Parse.Query('Messages');
 query.count({ useMasterKey: true }) // count() will use the master key to bypass ACLs
   .then(function(count) {
     response.success(count);
   });
});

Yes, you can do it anytime you want! Copy your MongoDB Connection String from Back4App’s Dashboard and connect to it using any MongoClient and make a dump of it.

Export JSON files

Users can directly export JSON files directly from the dashboard with a single click. Back4app now gives users exactly the same options they have in Parse.com to select the data they want to export to the file sent directly to their mailbox. The actual procedure could not be any simpler:

  1. Select the data to export.
  2. Select the Export this data from the options menu.
  3. Click the Export button – the data is immediately sent to your mailbox.

Note: You should update your Parse Server to the most recent version to enable this feature.

Import JSON Files

As well as exporting JSON files, it is easy to import JSON files into Parse Classes with the import file tool:

  1. Select the class to import
  2. Select Import data from the options menu.
  3. Click the Upload a File button – the file is sent to your mailbox.

Note: You should update your Parse Server to the most recent version to enable this feature.

At Back4App we have expanded the Parse Server standard storage files limit to 30MB. If you need to upload larger files contact our support team; we can always come up with a solution that meets your needs.

No! Back4App is a white-box solution! Back4App is built on the top of the Parse Server as an open source technology. Our team is active on the Parse Server repository and we are constantly developing improvements for Parse Server. Your database is totally downloadable.

Our tech team is ready to offer you specific help with your Parse Server instances. You can also schedule a call with the engineering team to help you with more advanced issues. Reach us through website chat :)

Today we have more than 20k developers on our platform. Get in touch https://groups.google.com/forum/#!forum/back4app

Our Parse Server version management feature allows you to deploy the Parse Server version that best fit your needs.

Sign Up Now :)