Skip to main content

Create a google app

To enable Google Drive backups you will need to create a Google Project within your organization that will act as the OAuth consumer.
  • Create a new Google project in the Google Cloud Console
  • On the APIs & Services page click ENABLE APIS AND SERVICES
  • Search for Google Drive API, select it, and click Enable
  • Click on OAuth consent screen
    • For user type select internal.
    • Fill out the relevant information.
  • Our SDKs request Drive scopes per backup option (see the per-option scope tables in the iOS, Android and Web backup guides). Configure both scopes on your OAuth consent screen so any backup option works:
  • At runtime, users only see consent checkboxes for the scopes their configured backup option needs. The hidden app-data option (appDataFolder) requests only drive.appdata, the user-visible folder option (gdriveFolder on iOS and Web, CustomFolder on Android) requests only drive.file, and appDataFolderWithFallback requests both. Both scopes are in Google’s non-sensitive category. The React Native SDK has no backup option: it requests only drive.file and stores backups in the user-visible folder.
  • Click on Credentials in the left menu and select + Create Credentials
Before going to production, you’ll need to verify your application and update your User type to External in order to allow external users to authenticate with Google.
  • Select OAuth client ID and choose Android from the Application Type list
  • Fill in the form as instructed, with Name, Package name, and SHA-1 from your Keystore.
    • Note that when testing you’ll want to use your debug.keystore at /android/app/debug.keystore; However, you’ll need to switch this value when pushing it to the store.
    • Find the Sha-1 fingerprint with this command from the root project folder: keytool -keystore ./app/debug.keystore -list -v
  • Click on Credentials in the left menu, select + Create Credentials again, and select Oauth client ID again. Then select Web Application as the Application type.
  • Input the Name. Then click create and copy the value from Your Client ID.
  • This value is what you will pass into the PortalOptions config when instantiating your Portal class.
  • Important: Add emails for internal testing until you’ve published your app for external use.

Useful Google Resources

Should I set scopes in the OAuth Consent Screen?
  • Our backup method does not require any sensitive or restrictive scopes as defined by google; however, setting scopes for your application will limit the functionality to only what is required from the permission if the temporary auth token was to get compromised. It is recommended by google to register all scopes
Should I get google approval?
  • You do not need to in order to publish your app because we don’t require sensitive or restrictive scopes; however, if you would like brand verification you will need to get google permissions. Those times vary from a couple days to two weeks. Google docs

Share backups across platforms

To recover on one platform a backup made on another, set up every platform the same way:
  • Use one Google Cloud project, whichever backup location you use. Create the OAuth clients for all of your apps, web, iOS and Android, in the same project. Google Drive limits each app to its own files: the app data folder is private to the app that wrote it, and the drive.file scope used for the user-visible folder only covers files the app created or the user opened with it. A backup written with an OAuth client from another project may therefore not be found.
  • Sign in with the same Google account. Each backup is stored in the Drive of the Google account the user chooses.
  • Choose the same backup location on every platform. The Web SDK uses the user-visible folder unless you set backupOption. On iOS (setGDriveConfiguration(clientId:backupOption:)) and Android (GDriveConfiguration) you choose the option when you configure Google Drive, and their guides use the app data folder. The deprecated iOS setGDriveConfiguration(clientId:folderName:) uses the user-visible folder. The React Native SDK only uses the user-visible folder. The equivalent options are:
The Web SDK supports backupOption starting in 4.2.0. Earlier Web SDK versions only use the user-visible folder, so they can’t recover backups stored in the app data folder. See the Web backup guide before changing the option for existing users.