💿

Configure Gdrive Storage

This is to allow your app to have access to store files in your users google drive.

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.
    Skip scopes as we configure that within our sdk.
  • Click on Credentials in the left menu and select + Create Credentials
Android
iOS
  • 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
  • Once you have successfully created your Android Client ID , download the JSON, and rename it to begoogle-service.json
  • Move the downloaded file into the /app directory (or the /android/app directory if you're using React Native).
  • 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.
  • Add emails for internal testing until you've published your app for external use.
  • Select OAuth client ID and choose iOS from the Application Type list
  • Get your Bundle ID from the react-native / iOS project
  • Once you've successfully created your iOS client ID, download the .plist config and copy the REVERSED_CLIENT_ID to the URL Scheme section of your info.plist either in xcode or your IDE:
info.plist
1
...
2
<key>CFBundleURLTypes</key>
3
<array>
4
<dict>
5
<key>CFBundleTypeRole</key>
6
<string>Editor</string>
7
<key>CFBundleURLSchemes</key>
8
<array>
9
<string>REVERSE_CLIENT_ID</string>
10
</array>
11
</dict>
12
</array>
13
...
  • Rename the downloaded .plist file to GoogleService-Info.plist and save that to your /ios directory
  • Copy and paste the Client ID from the GoogleService-Info.plistinto the PortalOptions config object when instantiating your portal class
Note: If using Android, in order for Google Authentication results to be properly handled by your Activity, you'll need to register function within your Activity.
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
​
if (portal.backup.drive.auth.onActivityResult != null) {
portal.backup.drive.auth.onActivityResult!!(requestCode, resultCode, data)
}
}