Ultimate Mobile Kit for iOS & Android - Firebase

http://gamednastudio.com/plugins/images/UltimateMobileKit/Wiki1.jpg

Ultimate Mobile Kit
Firebase mobile implementation for UE4

Ultimate Mobile Kit is a plugin for UE4 that lets you integrate the Firebase platform for iOS & Android.

Firebase is a platform that helps you quickly develop high-quality experiences, grow your user base, and earn more money. Firebase is made up of complementary features that you can mix-and-match to fit your needs. You can focus on making your game and not waste time building complex infrastructure.

Required Unreal Engine 4.15 or above.

Current plugin version: 1.12.0
User Guide: https://gamednastudio.com/plugins/do…_UserGuide.pdf

Buy now on Sellfy (20% OFF): https://sellfy.com/p/fc9C/
Buy now on Marketplace: https://www.unrealengine.com/marketp…e-kit-firebase

FEATURES:
Mobile Analytics – heart of Firebase, see user behavior and measure attribution from a single dashboard.
Cloud Messaging – lets you reliably deliver and receive messages at no cost.
Push Notifications – schedule and send from dashboard unlimited notifications to engage the right players at the most relevant time.
Authentication – authentication system that supports email & password login and adapters for Facebook, Twitter, GitHub, Google Sign-In, and Phone Number Authentication.
Instance Id – generate unique user IDs for authentication and security tokens for use with other services.
Cloud Storage – store and serve user-generated content like save games, images, audio, video or binary data.
Remote Config – update your game without deploying a new version and customize content for different Firebase Analytics audiences and measure results.
Performance Monitoring – get insights into how your game performs from your users’ point of view, with automatic and customized performance tracing.
Crashlytics – track, prioritize, and fix stability issues with lightweight but powerful, realtime crash reporter that improves your game quality.
Dynamic Links – improve acquisition and engagement by bringing users directly to content that they were originally searching for, whether they have your game installed or not.
Invites – complete solution for game referrals and sharing, free email and SMS delivery, let your existing players easy share your game.
In-App Messaging – engage users by sending them targeted and contextual messages that nudge them to complete key in-app actions.
Test Lab - test your games on physical and virtual devices hosted by Google that allow you to run tests that simulate actual usage environments.
Cloud Functions (server side) - run backend code without managing servers and keep your logic private and secure.
Predictions - use the power of Google’s machine learning to create dynamic user groups based on players’ predicted behavior.
A/B Testing - create experiments to optimize the users experience for a business goal.
Hosting - deploy web page with speed and security without all the hassle.
★ All features are exposed to Blueprints.
★ Supports installer. No more downloading SDKs and creating packages on your own!
★ Out-of-the-box for mobile platforms: iOS & Android.
★ Works with Blueprint-only & source code projects.
★ Works with Launcher & GitHub UE4 versions.

WHAT YOU GET:
★ Full source code available on GitHub private repo!
★ Compatible with iOS & Android (all-in-one)
★ Easy plugin setup
★ All future updates
★ Support via Discord & e-mail

Realtime Database is an extension of this plugin.

http://gamednastudio.com/storage/banners/RDBanner.png

Plugin is used in our mobile game CHASERS:

http://gamednastudio.com/storage/banners/ChasersBanner.png

You can download example project at the following address: GitHub - gameDNAstudio/ExampleProjects: Example projects for gameDNA's plugins

Facebook: gameDNA
**Twitter: **https://twitter.com/gameDNAstudio

More about Firebase you can find on the official website.

Join our Discord channel to receive support and subscribe latest news: https://gamednastudio.com/discord

http://gamednastudio.com/plugins/images/UltimateMobileKit/Promo2.jpg

http://gamednastudio.com/plugins/images/UltimateMobileKit/Promo3.jpg

http://gamednastudio.com/plugins/images/UltimateMobileKit/Promo4.jpg

http://gamednastudio.com/plugins/images/UltimateMobileKit/Promo5.jpg

FULL LIST OF SUPPORTED FUNCTIONS (BLUEPRINTS AND C++):

ANALYTICS:

  • Firebase Analytics Init
  • Firebase Analytics Log Event
  • Firebase Analytics Log Event Double
  • Firebase Analytics Log Event Integer
  • Firebase Analytics Log Event String
  • Firebase Analytics Set Current Screen
  • Firebase Analytics Set User Id
  • Firebase Analytics Set User Property
  • Firebase Analytics Get Analytics Instance Id
  • Firebase Analytics Set Analytics Collection Enabled
  • Firebase Analytics Reset Analytics Data
  • Is Firebase Analytics Initialized

AUTHENTICATION:

  • Firebase Authentication Init
  • Firebase Authentication Create User With Email And Password
  • Firebase Authentication Delete User
  • Firebase Authentication Fetch Providers For Email
  • Firebase Authentication Get Logged User
  • Firebase Authentication Get User Token
  • Firebase Authentication Is User Logged In
  • Firebase Authentication Link With Credential
  • Firebase Authentication Reauthenticate User
  • Firebase Authentication Reload User
  • Firebase Authentication Send Email Verification
  • Firebase Authentication Send Password Reset Email
  • Firebase Authentication Sign In Anonymously
  • Firebase Authentication Sign In With Credential
  • Firebase Authentication Sign In With Custom Token
  • Firebase Authentication Sign In With Email And Password
  • Firebase Authentication Sign In With Google
  • Firebase Authentication Sign Out
  • Firebase Authentication Unlink Provider
  • Firebase Authentication Update Email
  • Firebase Authentication Update Password
  • Firebase Authentication Update User Profile
  • Firebase Authentication Verify Phone Number
  • Is Firebase Authentication Initialized

CRASHLYTICS:

  • Firebase Crashlytics Force Crash
  • Firebase Crashlytics Force Exception
  • Firebase Crashlytics Set User Identifier
  • Firebase Crashlytics Set User Email
  • Firebase Crashlytics Set Username
  • Firebase Crashlytics Write Log
  • Firebase Crashlytics Write Log With Tag And Priority
  • Firebase Crashlytics Set String
  • Firebase Crashlytics Set Bool
  • Firebase Crashlytics Set Float
  • Firebase Crashlytics Set Integer
  • Is Firebase Crashlytics Initialized

DYNAMIC LINKS:

  • Firebase Dynamic Links Init
  • Firebase Dynamic Links Fetch
  • Firebase Dynamic Links Get Long Link
  • Firebase Dynamic Links Get Short Link
  • Firebase Dynamic Links Create Listener (Events: OnDynamicLinkReceived)
  • Is Firebase Links Initialized

IN-APP MESSAGING:

  • Firebase In-App Messaging Init
  • Firebase In-App Messaging Enable Automatic Data Collection
  • Firebase In-App Messaging Is Automatic Data Collection Enabled
  • Firebase In-App Messaging Turn On Messages Suppressed
  • Firebase In-App Messaging Are Messages Suppresed
  • Is Firebase In-App Messaging Initialized

INVITES:

  • Firebase Invites Init
  • Firebase Invites Send Invite
  • Firebase Invites Convert Invitation
  • Firebase Invites Fetch
  • Firebase Invites Get Listener (Events: OnInviteReceived, OnErrorReceived, OnInviteNotReceived)
  • Is Firebase Invites Initialized

INSTANCE ID:

  • Firebase Instance Id Init
  • Firebase Instance Id Get Token
  • Firebase Instance Id Get Id
  • Firebase Instance Id Delete Token
  • Firebase Instance Id Delete Id
  • Is Firebase Instance Id Initialized

MESSAGING:

  • Firebase Messaging Init
  • Firebase Messaging Send Message
  • Firebase Messaging Subscribe Topic
  • Firebase Messaging Unsubscribe Topic
  • Firebase Messaging Request Permission
  • Is Firebase Messaging Initialized

REMOTE CONFIG:

  • Firebase Remote Config Init
  • Firebase Remote Config Activate Fetched
  • Firebase Remote Config Fetch
  • Firebase Remote Config Get Boolean
  • Firebase Remote Config Get Float
  • Firebase Remote Config Get Integer
  • Firebase Remote Config Get Keys
  • Firebase Remote Config Get Keys By Prefix
  • Firebase Remote Config Get String
  • Firebase Remote Config Last Fetch Get Info
  • Is Firebase Remote Config Initialized

STORAGE:

  • Firebase Storage Init
  • Firebase Storage Reference Delete
  • Firebase Storage Reference Get Download Url
  • Firebase Storage Reference Get File
  • Firebase Storage Reference Get Metadata
  • Firebase Storage Reference Put File
  • Firebase Storage Reference Update Metadata
  • Cancel
  • Child
  • Get Bucket
  • Get Full Path
  • Get Parent
  • Firebase Storage Get Platform Storage Path
  • Firebase Storage Get Unreal Storage Path
  • Firebase Storage Get Save Game Storage Path
  • Get Progress
  • Get Short Name
  • Firebase Storage Get Storage Reference From Path
  • Firebase Storage Get Storage Reference From Url
  • Firebase Storage Get Storage Reference to Root
  • Is Paused
  • Is Valid
  • Pause
  • Resume
  • Is Firebase Storage Initialized

PERFORMANCE MONITORING:

  • Firebase Performance Monitoring Start Performance Trace
  • Stop
  • Increment Metric
  • Get Metric
  • Put Metric
  • Get Attribute
  • Put Attribute
  • Remove Attribute
  • Is Firebase Performance Monitoring Initialized

TEST LAB:

  • Firebase Test Lab Get Game Loop Scenario
  • Firebase Test Lab Take Screenshot
  • Firebase Test Lab Finish Test
  • Is Firebase Test Lab Initialized

CREDENTIAL:

  • Firebase Email Credential
  • Firebase Facebook Credential
  • Firebase GitHub Credential
  • Firebase Google Credential
  • Firebase Google Play Games Credential
  • Firebase Twitter Credential

VARIANT:

  • Firebase Boolean Variant
  • Firebase Float Variant
  • Firebase Integer Variant
  • Firebase String Variant

APP:

  • Firebase Check Google Play Availability
  • Firebase Make Google Play Available

ULTIMATE MOBILE KIT COMPONENT:

  • User Signed In
  • User Signed Out
  • User Id Token Changed
  • Message Received
  • Token Received
1 Like

If this one is as good as Your previous plugins then… oh boi, it’s gonna be awesome :smiley:

Wonderful news :slight_smile:
Put in the next plugin list: Google Services Multiplayer :stuck_out_tongue:
Would be great to have a plugin to successfully integrate google services real-time multiplayer as well :wink:

Added to the list! :wink:

We are close to release Ultimate Mobile Kit so I’ll present in the following days what you should expect from this plugin!

Mobile Analytics

At the heart of Firebase is Firebase Analytics, an unlimited analytics solution. Analytics integrates across Firebase features and provides you with unlimited reporting for up to 500 distinct events that you can define using the Ultimate Mobile Kit. Firebase Analytics reports help you understand clearly how your users behave, which enables you to make informed decisions regarding app marketing and performance optimizations. Once the data is captured, it’s available in a dashboard through the Firebase console. This dashboard provides detailed insights about your data — from summary data such as active users and demographics, to more detailed data such as identifying your most purchased items.

Real-time Mobile Analytics

You can see who is currently playing your mobile game!

https://gamednastudio.com/plugins/images/UltimateMobileKit/Wiki21.png

Log Events

Events provide insight on what is happening in your game, such as user actions, system events, or errors. Analytics automatically logs some events and user properties; you don’t need to add any code to enable them. If your game needs to collect additional data, you can log up to 500 different Analytics Event types in your game. There is no limit on the total volume of events your game logs.

You can log events without parameters, events with string, double and integer types of parameters, and events with multiple parameters (using Firebase Variant).

https://gamednastudio.com/plugins/images/UltimateMobileKit/Wiki3.png

https://gamednastudio.com/plugins/images/UltimateMobileKit/Wiki4.png

https://gamednastudio.com/plugins/images/UltimateMobileKit/Wiki5.png

https://gamednastudio.com/plugins/images/UltimateMobileKit/Wiki6.png

https://gamednastudio.com/plugins/images/UltimateMobileKit/Wiki7.png

Set Current Screen

Sets the current screen name and screen class, which specifies the current visual context in your game.

This helps identify the areas in your game where users spend their time and how they interact with your game.

https://gamednastudio.com/plugins/images/UltimateMobileKit/Wiki8.png

Set User Property

User properties are attributes you define to describe segments of your userbase, such as language preference or geographic location.

Analytics automatically logs some user properties; you don’t need to add any code to enable them. If your game needs to collect additional data, you can set up to 25 different Analytics User Properties in your game.

You can set Analytics user properties to describe the users of your game. You can analyze behaviors of various user segments by applying these properties as filters to your reports. Property must be registered before in the Analytics page of the Firebase console.

https://gamednastudio.com/plugins/images/UltimateMobileKit/Wiki10.png

Set User ID

Firebase generates automatically user ID for player in your game but you can assign custom user ID. This feature must be used in accordance with Google’s Privacy Policy.

https://gamednastudio.com/plugins/images/UltimateMobileKit/Wiki9.png

Cloud Messaging & Push Notifications

Firebase Cloud Messaging (FCM) is a cross-platform messaging solution that lets you reliably deliver messages at no cost.

Using FCM, you can notify a client app that new event or other data is available to sync. You can send notification messages to drive user reengagement and retention. For use cases such as instant messaging, a message can transfer a payload of up to 4KB to a client game.

Firebase Notifications is a service that enables targeted user notifications for mobile game developers.

Built on Firebase Cloud Messaging (FCM) and the FCM SDK, Firebase Notifications provides an option for developers and organizations seeking a flexible notification platform that requires minimal coding effort to get started, and a graphical console for sending messages. Using the Notifications console GUI, you can reengage and retain your userbase, faster app growth, and support marketing campaigns.

When your game is in the background on a user’s device, notifications are delivered to the system tray. When a user taps on the notification, the game launcher opens your game. If you want, you can also add client message handling to receive notifications in your game when it is already in the foreground on the user’s device.

Access the device registration token

On initial startup of your game, the FCM SDK generates a registration token for the client game instance. If you want to target single devices, or create device groups for FCM, you’ll need to access this token.

You can access the token’s value through the TokenReceived callback in UltimateMobileKit component.

https://gamednastudio.com/plugins/images/UltimateMobileKit/Wiki11.png

Subscribe/Unsubscribe

Based on the publish/subscribe model, FCM topic messaging allows you to send a message to multiple devices that have opted in to a particular topic. You compose topic messages as needed, and FCM handles routing and delivering the message reliably to the right devices.

Some things to keep in mind about topics:

  • Topic messaging supports unlimited topics and subscriptions for each app.
  • Topic messages are optimized for throughput rather than latency. For fast, secure delivery to single devices or small groups of devices, target messages to registration tokens, not topics.
  • If you need to send messages to multiple devices per user, consider device group messaging for those use cases.

To subscribe to a topic, call Firebase Subscribe Topic from your game. This makes an asynchronous request to the FCM backend and subscribes the client to the given topic. If the subscription request fails initially, FCM retries until it can subscribe to the topic successfully. Each time the app starts, FCM makes sure that all requested topics have been subscribed.

https://gamednastudio.com/plugins/images/UltimateMobileKit/Wiki14.png

To unsubscribe, call Firebase Unsubscribe Topic, and FCM unsubscribes from the topic in the background.

https://gamednastudio.com/plugins/images/UltimateMobileKit/Wiki15.png

Receive messages

FCM delivers topic messages in the same way as other downstream messages.

By handling MessageReceived callback in UltimateMobileKit component, you can perform actions based on the received message and get the message data.

https://gamednastudio.com/plugins/images/UltimateMobileKit/Wiki12.png

Send upstream messages

If your game server implements the XMPP Connection Server protocol, it can receive upstream messages from a user’s device to the cloud.

https://gamednastudio.com/plugins/images/UltimateMobileKit/Wiki16.png

https://gamednastudio.com/plugins/images/UltimateMobileKit/Wiki17.png

Push Notifications composer

You can simply send Push Notifications from Firebase dashboard. Notifications can be send to a user segment, a topic and a single device.

https://gamednastudio.com/plugins/images/UltimateMobileKit/Wiki20.png

Authentication

Firebase Authentication provides backend services, easy-to-use functions, and ready-made UI libraries to authenticate users to your game. It supports authentication using passwords, popular federated identity providers like Google, Facebook and Twitter, and more.

Firebase Authentication integrates tightly with other Firebase services, and it leverages industry standards like OAuth 2.0 and OpenID Connect, so it can be easily integrated with your custom backend.

Firebase Authentication is compatible with other ’s plugin Extended Facebook Online Subsystem.

To sign a user into your app, you first get authentication credentials from the user. These credentials can be the user’s email address and password, or an OAuth token from a federated identity provider. Then, you pass these credentials to the Firebase Authentication SDK. Google’s backend services will then verify those credentials and return a response to the client.

After a successful sign in, you can access the user’s basic profile information, and you can control the user’s access to data stored in other Firebase products. You can also use the provided authentication token to verify the identity of users in your own backend services.

Create User

Create User With Email And Password

Create a form that allows new users to register with your app using their email address and a password. When a user completes the form, validate the email address and password provided by the user, then pass them to the Firebase Create User With Email And Password function.

https://gamednastudio.com/plugins/images/UltimateMobileKit/Wiki23.png

Send Email Verification

You can send an address verification email to a user with the Firebase Send Email Verification function. You can customize the email template that is used in Authentication section of the Firebase console.

https://gamednastudio.com/plugins/images/UltimateMobileKit/Wiki25.png

Send Password Reset Email

You can send a password reset email to a user with the Firebase Send Password Reset Email method. You can customize the email template that is used in Authentication section of the Firebase console.

https://gamednastudio.com/plugins/images/UltimateMobileKit/Wiki26.png

Link with external providers

Link With Credential

You can allow users to sign in to your game using multiple authentication providers by linking auth provider credentials to an existing user account. Users are identifiable by the same Firebase user ID regardless of the authentication provider they used to sign in. For example, a user who signed in with a password can link a Google account and sign in with either method in the future. Or, an anonymous user can link a Facebook account and then, later, sign in with Facebook to continue using your game.

Currently supported providers:

  • Email/Password (standard)
  • Facebook
  • Google
  • Twitter
  • GitHub

You can link provider with an existing user account by initializing appropriate Firebase Credential and calling Firebase Link With Credential. Tokens for Credentials you should obtain on your own (for example for Facebook using Extended Facebook Online Subsystem).

https://gamednastudio.com/plugins/images/UltimateMobileKit/Wiki32.png

If the call to Firebase Link With Credential succeeds, the user can now sign in using any linked authentication provider and access the same Firebase data.

Unlink Provider

You can unlink an auth provider from an account, so that the user can no longer sign in with that provider. To unlink an auth provider from a user account, pass the provider ID to the Firebase Unlink Provider function.

https://gamednastudio.com/plugins/images/UltimateMobileKit/Wiki33.png

Fetch Providers for Email

Firebase Fetch Providers for Email asynchronously requests the IDPs (identity providers) that can be used for the given email address. Useful for an “identifier-first” login flow.

https://gamednastudio.com/plugins/images/UltimateMobileKit/Wiki34.png

Sign In

Create a form that allows existing users to sign in using their email address and password. When a user completes the form, call the chosen signed in function.

Sign In With Email And Password

The steps for signing in a user with a password are similar to the steps for creating a new account. When a user signs in to your game, pass the user’s email address and password to Firebase Sign In With Email And Password.

https://gamednastudio.com/plugins/images/UltimateMobileKit/Wiki24.png

Sign In Anonymously

You can use Firebase Authentication to create and use temporary anonymous accounts to authenticate with Firebase. These temporary anonymous accounts can be used to allow users who haven’t yet signed up to your game to work with data protected by security rules. If an anonymous user decides to sign up to your game, you can link their sign-in credentials to the anonymous account so that they can continue to work with their protected data in future sessions.

https://gamednastudio.com/plugins/images/UltimateMobileKit/Wiki30.png

Sign In With Credential

After a user signs in for the first time, a new user account is created and linked to the credentials - that is, the user name and password, or auth provider information - the user signed in with. This new account is stored as part of your Firebase project, and can be used to identify a user across every game in your project, regardless of how the user signs in.

https://gamednastudio.com/plugins/images/UltimateMobileKit/Wiki31.png

Sign In With Custom Token

You can use your custom Auth Token authentication. An error is returned, if the token is invalid, expired or otherwise not accepted by the server.

https://gamednastudio.com/plugins/images/UltimateMobileKit/Wiki35.png

Get User Token

The Java Web Token (JWT) that can be used to identify the user to the backend.
If a current ID token is still believed to be valid (i.e. it has not yet expired), that token will be returned immediately. You may set the optional force_refresh flag to get a new ID token, whether or not the existing token has expired. For example, a you may use this when they have discovered that the token is invalid for some other reason.

https://gamednastudio.com/plugins/images/UltimateMobileKit/Wiki36.png

Managing Users

Is User Logged In

You can check if user is logged in to your game calling Firebase Is User Logged In.

https://gamednastudio.com/plugins/images/UltimateMobileKit/Wiki37.png

Get Logged User

To get currently logged user’s profile information, call Firebase Get Logged User.

https://gamednastudio.com/plugins/images/UltimateMobileKit/Wiki38.png

Sign Out

To sign out a user from game, call Firebase Sign Out function.

https://gamednastudio.com/plugins/images/UltimateMobileKit/Wiki39.png

Reauthenticate User

Some security-sensitive actions—such as deleting an account, setting a primary email address, and changing a password—require that the user has recently signed in. If you perform one of these actions, and the user signed in too long ago, the action fails.
When this happens, re-authenticate the user by getting new sign-in credentials from the user and passing the credentials to Firebase Reauthenticate User.

https://gamednastudio.com/plugins/images/UltimateMobileKit/Wiki40.png

Reload User

Firebase Reload User refreshes all the data for currently logged in user.

https://gamednastudio.com/plugins/images/UltimateMobileKit/Wiki41.png

Delete User

You can delete a user account with the Firebase Delete User method. You can also delete users from the Authentication section of the Firebase console, on the Users page. To delete a user, the user must have signed in recently.

https://gamednastudio.com/plugins/images/UltimateMobileKit/Wiki42.png

Update User Profile

Update Email

You can set a user’s email address with the Firebase Update Email function. To delete a user, the user must have signed in recently.

https://gamednastudio.com/plugins/images/UltimateMobileKit/Wiki27.png

Update Password

You can set a user’s password with the Firebase Update Password function. To delete a user, the user must have signed in recently.

https://gamednastudio.com/plugins/images/UltimateMobileKit/Wiki28.png

Update User Profile

You can update a user’s basic profile information - the user’s display name and profile photo URL - with the Firebase Update User Profile function.

https://gamednastudio.com/plugins/images/UltimateMobileKit/Wiki29.png

Authentication Listener

To respond to sign-in and sign-out events, attach the UltimateMobileKit component to the global actor (for example Game Mode). This listener gets called whenever the user’s sign-in state changes. Because the listener runs only after the authentication object is fully initialized and after any network calls have completed, it is the best place to get information about the signed-in user. By using a listener, you ensure that the Auth object isn’t in an intermediate state — such as initialization — when you get the current user.

https://gamednastudio.com/plugins/images/UltimateMobileKit/Wiki70.png

https://gamednastudio.com/plugins/images/UltimateMobileKit/Wiki71.png

Cloud Storage

Cloud Storage is built for game developers who need to store and serve user-generated content, such as save games, photos or videos.

Developers use the Firebase SDKs for Cloud Storage to upload and download files directly from clients. If the network connection is poor, the client is able to retry the operation right where it left off, saving your users time and bandwidth.

The Firebase SDKs for Cloud Storage integrate seamlessly with Firebase Authentication to identify users, and Google provides a declarative security language that lets you set access controls on individual files or groups of files, so you can make files as public or private as you want.

Storage Reference

Your files are stored in a Google Cloud Storage bucket. The files in this bucket are presented in a hierarchical structure, just like the file system on your local hard disk. By creating a reference to a file, your game gains access to it. These references can then be used to upload or download data, get or update metadata or delete the file. A reference can either point to a specific file or to a higher level node in the hierarchy.

https://gamednastudio.com/plugins/images/UltimateMobileKit/Wiki49.png

Create a reference to upload, download, or delete a file, or to get or update its metadata. A reference can be thought of as a pointer to a file in the cloud. References are lightweight, so you can create as many as you need. They are also reusable for multiple operations.

References are created from the storage service on your Firebase game by calling one of three functions:

  • Get Storage Reference to Root – reference to the highest level of your storage
  • Get Storage Reference from Path – reference to the specified path from root
  • Get Storage Reference from Url – URL of the form gs://<your-cloud-storage-bucket>.

You can create a reference to a location lower in the tree, say images/space.jpg, by using the child method on an existing reference.

https://gamednastudio.com/plugins/images/UltimateMobileKit/Wiki51.png

You can also use the Parent function to navigate up one level in our file hierarchy.

https://gamednastudio.com/plugins/images/UltimateMobileKit/Wiki52.png

Child and Parent can be chained together multiple times, as each returns a reference. The exception is the Parent of Root, which is an invalid Storage Reference.

Storage Path

https://gamednastudio.com/plugins/images/UltimateMobileKit/Wiki55.png

For downloading or uploading files you need to provide location where file should be located on the iOS or Android device. You can do this using the following functions:

  • Get Platform Storage Path – returns a path to the physical storage on a device
  • Get Unreal Storage Path – returns a path to the main directory of Unreal filesystem on a device
  • Get Save Game Storage Path - returns a path to the directory of Unreal Save Games on a device

Download File

Cloud Storage allows developers to quickly and easily download files from a Google Cloud Storage bucket provided and managed by Firebase.

To download a file, first create a Cloud Storage reference to the file you want to download.

You can create a reference by appending child paths to the storage root, or you can create a reference from an existing gs:// or https:// URL referencing an object in Cloud Storage.

Once you have a reference, you can download files from Cloud Storage in two ways:

  • Generate an string URL representing the file online
  • Download to an specific path on the device

If you already have download infrastructure based around URLs, or just want a URL to share, you can get the download URL for a file by calling the Firebase Storage Reference Get Download Url function on a storage reference.

https://gamednastudio.com/plugins/images/UltimateMobileKit/Wiki45.png

The Firebase Storage Reference Get File function downloads a file directly to a local device. Use this if your users want to have access to the file while offline or to share in a different app.

https://gamednastudio.com/plugins/images/UltimateMobileKit/Wiki46.png

Upload File

Cloud Storage allows developers to quickly and easily upload files to a Google Cloud Storage bucket provided and managed by Firebase.

To upload a file, first create a Cloud Storage reference to the location in Cloud Storage you want to upload the file to. You cannot upload data with a reference to the root of your Google Cloud Storage bucket. Your reference must point to a child URL. Once you have a reference, you can upload files to Cloud Storage.

You can upload local files on the devices, such as photos and videos from the camera or saved games, with the Firebase Storage Reference Put File function. You can also include metadata when you upload files.

https://gamednastudio.com/plugins/images/UltimateMobileKit/Wiki54.png

Delete File

Of course you can also delete files from Cloud Storage.

To delete a file, first create a reference to that file. Then call the Firebase Storage Reference Delete method on that reference.

https://gamednastudio.com/plugins/images/UltimateMobileKit/Wiki50.png

Monitor progress of Downloads/Uploads

Downloads/Uploads functions returns Storage Listener object to which you can bind OnProgressEvent and OnPausedEvent in order to monitor the progress of files tasks.

https://gamednastudio.com/plugins/images/UltimateMobileKit/Wiki47.png

Manage Downloads/Uploads

In addition to starting downloads/uploads, you can pause, resume, and cancel downloads/uploads using the Pause, Resume, and Cancel functions on Storage Controller.

https://gamednastudio.com/plugins/images/UltimateMobileKit/Wiki48.png

Get/Update Metadata

After uploading a file to Cloud Storage reference, you can also get and update the file metadata, for example to update the content type.

You can update file metadata at any time after the file upload completes by using the Firebase Storage Reference Update Metadata function. Only the properties specified in the metadata are updated, all others are left unmodified. You can delete writable metadata properties by passing the empty string.

https://gamednastudio.com/plugins/images/UltimateMobileKit/Wiki58.png

File metadata contains common properties such as name, size, and content_type (often referred to as MIME type) in addition to some less common ones like content_disposition and time_created. This metadata can be retrieved from a Cloud Storage reference using the Firebase Storage Reference Get Metadata function.

https://gamednastudio.com/plugins/images/UltimateMobileKit/Wiki56.png

https://gamednastudio.com/plugins/images/UltimateMobileKit/Wiki57.png

Remote Config

Firebase Remote Config is a cloud service that lets you change the behavior and appearance of your game without requiring users to download a game update. When using Remote Config, you create in-game default values that control the behavior and appearance of your game. Then, you can later use the Firebase console to override in-game default values for all game users or for segments of your userbase. Your game controls when updates are applied, and it can frequently check for updates and apply them with a negligible impact on performance.

Initialization

Before making any call to Firebase Remote Config you should first execute Firebase Remote Config Init function. If result is fail, study logs to find what causes an issue.

You can set in-app default parameter values in the Remote Config object, so that your game behaves as intended before it connects to the Remote Config service, and so that default values are available if none are set in the service. Make array with Firebase Variant parameters and pass to the Firebase Remote Config Init function.

https://gamednastudio.com/plugins/images/UltimateMobileKit/Wiki60.png

Get parameter values to use in your game

Now you can get parameter values from the Remote Config object. If you set values in the Remote Config service, fetched them, and then activated them, those values are available to your game. Otherwise, you get the in-app default parameter values configured using Firebase Remote Config Init.

To get these values, call the method listed below that maps to the data type expected by your game, providing the parameter key as an argument.

https://gamednastudio.com/plugins/images/UltimateMobileKit/Wiki66.png

You can get the set of all keys (Firebase Remote Config Get Keys) in the Remote Config or the set of that start with the given prefix (Firebase Remote Config Get Keys By Prefix).

https://gamednastudio.com/plugins/images/UltimateMobileKit/Wiki64.png

https://gamednastudio.com/plugins/images/UltimateMobileKit/Wiki65.png

Fetch and activate values from the service (as needed)

  1. To fetch parameter values from the Remote Config service, call the Firebase Remote Config Fetch. Any values that you set on the Remote Config Server are fetched and cached in the Remote Config object.
  2. To make fetched parameter values available to your game, call the Firebase Remote Config Activate Fetched function.

Because these updated parameter values affect the behavior and appearance of your game, you should activate the fetched values at a time that ensures a smooth experience for your user, such as the next time that the user opens your game.

https://gamednastudio.com/plugins/images/UltimateMobileKit/Wiki61.png

https://gamednastudio.com/plugins/images/UltimateMobileKit/Wiki62.png#Update1

You can also get information about last fetch calling Firebase Remote Config Last Fetch Get Info.

https://gamednastudio.com/plugins/images/UltimateMobileKit/Wiki63.png

**Ultimate Mobile Kit 1.0 released!
**

Buy now on Sellfy (20% OFF): https://sellfy.com/p/fc9C/

**Plugin is also submitted to the UE4 Marketplace but it needs some time for review and approval.
**

http://gamednastudio.com/plugins/images/UltimateMobileKit/Update1.png

http://gamednastudio.com/plugins/images/UltimateMobileKit/Promo2.jpg

http://gamednastudio.com/plugins/images/UltimateMobileKit/Promo3.jpg

http://gamednastudio.com/plugins/images/UltimateMobileKit/Promo4.jpg

http://gamednastudio.com/plugins/images/UltimateMobileKit/Promo5.jpg

great work, excited to check this out!

Thank you! :cool:

**Ultimate Mobile Kit Plugin 1.0.1 released!
**

**CHANGELOG:
**- Fixed crash in Remote Config Initialization with parameters on Android.

  • Added Checking Google Play Services Availability service.
  • Added missing retrieving Android Platform Storage Path.
  • Added custom icon to the Android notifications.

https://gamednastudio.com/plugins/images/UltimateMobileKit/Wiki75.png

You can download it from GitHub repository on releases tab or your Sellfy dashboard.

If you haven’t owned it yet, you can buy now on Sellfy.

Ultimate Mobile Kit Plugin 1.1.0 Preview for UE 4.16 Preview!

I’ve just released plugin binaries for Unreal Engine 4.16 Preview.
You can download it from GitHub repository on releases tab.

If you find any bug, feel free to report it :slight_smile:

http://gamednastudio.com/plugins/images/UltimateMobileKit/Update2.png

Ultimate Mobile Kit Plugin 1.1.0 for UE 4.16 final release!

We’ve just released plugin binaries for Unreal Engine 4.16
You can download it from GitHub repository on releases tab or your Sellfy dashboard.

CHANGELOG:

  • Google Play Services updated to 10.2.1
  • Tweaks for UE 4.16 compatibility

If you haven’t owned it yet, you can buy now on Sellfy.

Ultimate Mobile Kit Plugin 1.1.1 released!

We’ve just released a hotfix for Unreal Engine 4.16
You can download it from GitHub repository on releases tab or your Sellfy dashboard.

CHANGELOG:

  • Force to use Google Play Services 10.2.1 due to bug in UE 4.16

If you haven’t owned it yet, you can buy now on Sellfy.

Hey Patryk, I was wondering if you have come across the ability to embed ads from your Universal Mobile ad system inside a virtual reality game? i.e. https://developer.viveport.com/vadservice/docs/register

One question, does this support saving array’s? I know there are some engine issues currently with saving an array to a standard .sav file. Sadly, I set up the game (which is array… since there is no local DB… heavy.)

It’s on 's To-Do list but I can’t provide any ETA…

Using Ultimate Mobile Kit you can upload save game file (generated by UE4) to the cloud so if something doesn’t work in UE4 save games system, this plugin won’t help you. Realtime Database will have separated save game system.

http://gamednastudio.com/plugins/images/UltimateMobileKit/Update3.png

Ultimate Mobile Kit 1.2.0 with installer

We’ve just released plugin binaries with support for installer and some other updates.
You can download it from GitHub repository on releases tab or your Sellfy dashboard (for Sellfy customers).

CHANGELOG:

  • Enabled support for installer. No more downloading and creating packages on your own! Check more: https://forums.unrealengine.com/showthread.php?148579-FREE–installer-automatic-SDK-downloader-and-installer
  • Fixed a compilation error without installed SDK
  • Fixed a compilation error with including plugin files in source code project
  • Exposed modules API to public access in source code project
  • Fixed a crash during Remote Config initialization in source code project
  • Google Play Services updated to 11.0.1
  • Android Support Libraries updated to 25.3.1
  • Firebase SDK for Android updated to 11.0.1
  • Firebase SDK for iOS updated to 4.0.2
  • Firebase SDK for C++ updated to 4.0.1

If you haven’t owned it yet, you can buy now on Sellfy.