d. Delete data e. Transactions Realtime Features a. Value Listener b. Child Listener c. Remove Listeners

Size: px
Start display at page:

Download "d. Delete data e. Transactions Realtime Features a. Value Listener b. Child Listener c. Remove Listeners"

Transcription

1

2 Contents 1. License Introduction Plugin updates... 7 a. Update from previous versions to Example project GitHub Repository Getting started Database Core a. Initialization b. Permissions c. Structure Data d. Go Online/Offline e. Purge Outstanding Writes Database Reference a. Get Reference b. Tree manipulating Variants a. Construct Variant b. Convert Variant c. Check Type d. Get Value e. Set Value Read Data a. Retrieve data b. Sorting data c. Filtering data d. How query data is ordered Save Data a. Basic write operations b. Append to a list of data c. Update specific fields... 26

3 d. Delete data e. Transactions Realtime Features a. Value Listener b. Child Listener c. Remove Listeners Offline Features (Mobile Only) a. Persistence Behavior b. Keeping Data Fresh c. Querying Data Offline d. Save Data Offline e. Handling Transactions Offline f. Managing Presence g. Detecting Connection State Cloud Functions a. Initialization b. Call Function Database Authentication a. Initialization b. Create User With And Password c. Send Verification d. Send Password Reset e. Sign In With And Password f. Update g. Update Password h. Sign Out i. Is User Logged In j. Reauthenticate User k. Authentication Listener Installation without gamedna installer... 46

4

5 1. License Copyright 2019 gamedna Ltd. All rights reserved. gamedna Ltd grants you a non-exclusive, non-transferable, non-sublicensable license for a single User to use, reproduce, display, perform, and modify the Realtime Database for Unreal Engine 4 for any lawful purpose (the "License"). The License becomes effective on the date you buy Realtime Database for Unreal Engine 4. The License does not grant you any title or ownership in the Licensed Technology. You may Distribute the Realtime Database for Unreal Engine 4 incorporated in object code format only as an inseparable part of a Product to end users. The Product may not contain any Plugin Content in uncooked source format. Unreal is a trademark or registered trademark of Epic Games, Inc. in the United States of America and elsewhere. Unreal Engine, Copyright , Epic Games, Inc. All rights reserved. Firebase is a trademark of Google, Inc. 2. Introduction Realtime Database is a plugin for Unreal Engine 4 that lets you integrate Realtime Database functionality of the Firebase system for all platforms. Firebase is a platform that helps you quickly develop high-quality experiences and grow your user base. You can focus on making your game and not waste time building complex infrastructure. Realtime Database is a cloud-hosted NoSQL database. Data is stored as JSON, synced across connected devices in milliseconds, and available when your game goes offline. Current plugin version: Support: support@gamednastudio.com FEATURES: Firebase Realtime Database implementation. Cloud-hosted NoSQL database with data stored as JSON. No additional servers needed. Realtime sync across connected devices in milliseconds. All clients share one Realtime Database instance and automatically receive updates with the newest data. Responsive regardless of network latency or Internet connectivity so your game works offline. Data synchronizes when connectivity returns (mobile only).

6 Handling of the complexity of realtime synchronization and provision of flexible conflict resolution. Backend development without servers using Firebase Cloud Functions. Support for transactions for operations that could be corrupted by concurrent modifications. Strong user-based security with Firebase Authentication module. All features are exposed to Blueprints. Support for gamedna installer. No more downloading SDKs and creating packages on your own! Out-of-the-box for all platforms. Works with Blueprint-only & source code projects. Works with Launcher & GitHub UE4 versions. Big example project and professional documentation included. Compatible with Ultimate Mobile Kit. The Firebase Realtime Database lets you build rich, online games by allowing secure access to the database directly from client-side code. The data is persisted locally, and even while offline, realtime events continue to fire, giving the end user a responsive experience. When the device regains connection, the Realtime Database synchronizes the local data changes with the remote updates that occurred while the client was offline, merging any conflicts automatically. The Realtime Database provides a flexible, expression-based rules language, called Firebase Realtime Database Security Rules, to define how your data should be structured and when data can be read from or written to. When integrated with Firebase Authentication, developers can define who has access to what data, and how they can access it. The Realtime Database is a NoSQL database and as such has different optimizations and functionality compared to a relational database. The Realtime Database API is designed to only allow operations that can be executed quickly. This enables you to build a great realtime experience that can serve millions of players without compromising on responsiveness. Because of this, it is important to think about how players need to access your data and then structure it accordingly. Key capabilities: Realtime instead of typical HTTP requests, the Firebase Realtime Database uses data synchronization every time data changes, any connected device receives that update within milliseconds. Provides collaborative and immersive experiences without thinking about networking code. Offline Firebase apps remain responsive even when offline because the Firebase Realtime Database persists your data to disk. Once connectivity is

7 reestablished, the client device receives any changes it missed, synchronizing it with the current server state. Accessible from Client Devices the Firebase Realtime Database can be accessed directly from every device supported by plugin; no database server is needed. Security and data validation are available through the Firebase Realtime Database Security Rules, expression-based rules that are executed when data is read or written. 3. Plugin updates a. Update from previous versions to Delete all files under Plugins/RealtimeDatabase directory and install plugin again as described in Getting started section.

8 4. Example project You can download an example project at the following address: 5. GitHub Repository Please the receipt of this plugin's purchase to for access to the GitHub repository used to develop this plugin!

9 6. Getting started 1. Go to create a Firebase Account and setup your game. 2. Unpack the plugin archive to Plugins folder in your UE4 project folder (for project plugins) or Engine/Plugins/Marketplace (for engine plugins) and start the editor. 3. Enable Realtime Database in Edit -> Plugins -> Networking -> Realtime Database. 4. Download gamedna installer plugin from the releases tab on the official GitHub repository Install plugin and SDKs as described in the included documentation.

10 gamedna installer is a quality-of-life improvement which allows you to automatically and very quickly download and install all necessary Third-Party SDKs needed for the plugin to function. For some reason, if you don t want to use gamedna installer, you can install everything manually what is described in the section 15: Installation without gamedna installer 5. All platforms configuration: a) Go to Project Settings -> Realtime Database -> Config Files Universal. b) Go to Project Settings in your project on Firebase Dashboard ( c) Copy Web API Key from Firebase Dashboard and paste into field Firebase Database API Key in Plugin Settings. d) Click on Database tab in Firebase Dashboard and copy database URL (for example and paste into field Firebase Database URL in Plugin Settings. 6. Android configuration: a) Download and copy configuration files to the following folder: [PROJECT_FOLDER]/Config/Firebase/Android/google-services.json b) Click on Load Firebase Config in the Android section. 7. ios configuration: a) Download and copy configuration files to the following folder: [PROJECT_FOLDER]/Config/Firebase/IOS/GoogleService-Info.plist b) Click on Load Firebase Config in the ios section. 8. Go to Project Settings -> Plugins -> Realtime Database and customize options.

11 7. Database Core a. Initialization Before making any call to the Firebase Realtime Database, first, you should execute the Firebase Database Init function. If the result is a fail, study logs to find out what causes an issue. If you use multiple databases, you can pass database URLs you will use in the runtime. b. Permissions The Realtime Database provides a declarative rules language that allows you to define how your data should be structured, how it should be indexed, and when your data can be read from and written to. By default, read and write access to your database is restricted so only authenticated users can read or write data. To get started without setting up Authentication, you can configure your rules for public access. This does make your database open to anyone, even people not using your game, so be sure to restrict your database again when you set up authentication. If you do not want to use public access you can add Firebase Authentication to your app to control access to the database. More about permissions you can find on the official Firebase website. c. Structure Data Building a properly structured database requires quite a bit of forethought. Most importantly, you need to plan for how data is going to be saved and later retrieved to make that process as easy as possible. Some tips how to do this you can find in the official documentation.

12 d. Go Online/Offline You can manipulate whether your game is connected to the Firebase Realtime Database or not. Go Online Resumes the connection to the Firebase Realtime Database backend after a previous Go Offline call. Go Offline Shuts down the connection to the Firebase Realtime Database backend until Go Online is called. You can pass Database URL to execute function for proper database instance. For empty field, default database will be used. e. Purge Outstanding Writes This function purges all pending writes to the Firebase Realtime Database server. You can pass Database URL to execute function for proper database instance. For empty field, default database will be used.

13 8. Database Reference Database Reference represents a particular location in your Database and can be used for reading or writing data to that Database location. This class is the starting point for all Database operations. After you've initialized it with a URL, you can use it to read data, write data, and to create new Database Reference instances. a. Get Reference You can get Database Reference using one of three available functions: Firebase Database Get Reference get a Database Reference to the root of the database. Firebase Database Get Reference From Path get a Database Reference for the specified path. Firebase Database Get Reference From URL get a Database Reference for the provided URL, which must belong to the database URL this instance is already connected to.

14 b. Tree manipulating For more flexible tree manipulating you can use the following functions instead of paths or URLs: Child gets a reference to a location relative to this one. Get Parent gets the parent of this location, or get this location again if Is Root. Get Root gets the root of the database. Is Root returns true if this reference refers to the root of the database. Key gets the string key of this database location. Url gets the absolute URL of this reference. The above example is an equivalent of path /users/eclarke and URL

15 9. Variants Firebase Variant is a main data type for Firebase platform and is used instead of multiple standard types such as: integer, float, string, bool, arrays, maps, etc. a. Construct Variant Construct Variant functions create and return a new Variant from provided data type. Construct From Bool return a Variant from a boolean. Construct From Float return a Variant from a floating point number. Construct From Integer return a Variant from an integer number. Construct From String return a Variant from a string. Construct Empty String get an empty string variant. Construct Empty Array get a Variant containing an empty array. Construct One get a Variant of integer value 1. Construct Zero get a Variant of integer value 0. Construct Zero Point Zero get a Variant of double value 0.0. Construct One Point Zero get a Variant of double value 1.0. Construct True Object get a Variant of bool value true. Construct False Object get a Variant of bool value false. Construct Empty Map get a Variant containing an empty map. Construct Null get a Variant of type Null.

16 b. Convert Variant You can Convert Variant from one data type to another. As Bool get the current Variant converted into a boolean. As Float get the current Variant converted into a floating-point number. As Integer get the current Variant converted into an integer. As String get the current Variant converted into a string. c. Check Type You can get and check current Variant type using below functions: Type get the current type contained in this Variant. Is Array get whether this Variant contains a vector. Is Map get whether this Variant contains a map. Is Null get whether this Variant is currently null. Is Static String get whether this Variant contains a static string. Is Mutable String get whether this Variant contains a mutable string. Is String get whether this Variant contains a string. Is Integer get whether this Variant contains an integer. Is Float get whether this Variant contains a float. Is Numeric get whether this Variant contains a numeric type, integer or float. Is Bool get whether this Variant contains a bool. Is Fundamental Type get whether this Variant contains a fundamental type: null, integer, double, bool, or one of the two string types. Is Container Type get whether this Variant contains a container type: array or map.

17 d. Get Value Bool Value accessor for a Variant containing a bool. Float Value accessor for a Variant containing a float. Integer Value accessor for a Variant containing an integer. String Value accessor for a Variant containing a string.

18 Array Value accessor for a Variant containing an array of Variant data. Map Value accessor for a Variant containing a map of Variant data. e. Set Value Set Bool Value sets the Variant to the given boolean value. Set Float Value sets the Variant to a double-precision floating point value. Set String Value sets the Variant to a copy of the given string. Set Integer Value sets the Variant to an integer value.

19 Set Array sets the Variant to a copy of the given array. Set Map sets the Variant to a copy of the given map.

20 10. Read Data a. Retrieve data You can use the Get Value method to read a static snapshot of the contents at a given path once. The task result will contain a snapshot containing all data at that location, including child data. If there is no data, the snapshot returned is null. When query is completed, you can call Value on downloaded Data Snapshot: You can manipulate database tree in downloaded Data Snapshot using child nodes: Has Child does this Data Snapshot contain data at a particular location? Child get a Data Snapshot for the location at the specified relative path. Has Children does this Data Snapshot contain any children at all? Children get all the immediate children of this location. Children Count get the number of children of this location. Exists returns true if the data is non-empty. Key get the key name of the source location of this snapshot. Priority get the priority of the data contained in this snapshot.

21 b. Sorting data To retrieve sorted data, start by specifying one of the order-by methods to determine how results are ordered: Order By Child order results by the value of a specified child key. Order By Key order results by child keys. Order By Value order results by child values. Order By Priority order results by child priorities. The call to the Order By Child method specifies the child key to order the results by. In this case, results are sorted by the value of the price value in each child. You can only use one order-by method at a time. Calling an order-by method multiple times in the same query throws an error.

22 c. Filtering data To filter data, you can combine any of the limit or range methods with an order-by method when constructing a query. Limit To First sets the maximum number of items to return from the beginning of the ordered list of results. Limit To Last sets the maximum number of items to return from the end of the ordered list of results. Start At return items greater than or equal to the specified key or value depending on the order-by method chosen. End At return items less than or equal to the specified key or value depending on the order-by method chosen. Equal To return items equal to the specified key or value depending on the orderby method chosen. Unlike the order-by methods, you can combine multiple limit or range functions. For example, you can combine the Start At and End At methods to limit the results to a specified range of values. Even when there is only a single match for the query, the snapshot is still a list; it just contains a single item.

23 d. How query data is ordered i. Order By Child When using Order By Child, data that contains the specified child key is ordered as follows: Children with a null value for the specified child key come first. Children with a value of false for the specified child key come next. If multiple children have a value of false, they are sorted lexicographically by key. Children with a value of true for the specified child key come next. If multiple children have a value of true, they are sorted lexicographically by key. Children with a numeric value come next, sorted in ascending order. If multiple children have the same numerical value for the specified child node, they are sorted by key. Strings come after numbers and are sorted lexicographically in ascending order. If multiple children have the same value for the specified child node, they are ordered lexicographically by key. Objects come last and are sorted lexicographically by key in ascending order. ii. Order By Key When using Order By Key to sort your data, data is returned in ascending order by key. Children with a key that can be parsed as a 32-bit integer come first, sorted in ascending order. Children with a string value as their key come next, sorted lexicographically in ascending order. iii. Order By Value When using Order By Value, children are ordered by their value. The ordering criteria are the same as in Order By Child, except the value of the node is used instead of the value of a specified child key.

24 11. Save Data a. Basic write operations For basic write operations, you can use Set Value to save data to a specified reference, replacing any existing data at that path. You can use this method to pass types accepted by JSON through a Variant type which supports: Null (this deletes the data) Integers (64-bit) Floating point numbers Booleans Strings Arrays of Variants Maps of strings to Variants Using Set Value in this way overwrites data at the specified location, including any child nodes. However, you can still update a child without rewriting the entire object: You can set priority of the database field which controls its sort order relative to its siblings. In Firebase, children are sorted in the following order: First, children with no priority. Then, children with numerical priority, sorted numerically in ascending order. Then, remaining children, sorted lexicographically in ascending order of their text priority. Children with the same priority (including no priority) are sorted by key: A. First, children with keys that can be parsed as 32-bit integers, sorted in ascending numerical order of their keys. B. Then, remaining children, sorted in ascending lexicographical order of their keys.

25 It's possible to set value and priority in one function call: b. Append to a list of data Use the Push Child method to append data to a list in multiuser applications. The Push Child method generates a unique key every time a new child is added to the specified Firebase reference. By using these auto-generated keys for each new element in the list, several clients can add children to the same location at the same time without write conflicts. The unique key generated by Push Child is based on a timestamp, so list items are automatically ordered chronologically. You can use the reference to the new data returned by the Push Child method to get the value of the child's auto-generated key or set data for the child. Calling Get Key on a Push Child reference returns the value of the auto-generated key.

26 c. Update specific fields To simultaneously write to specific children of a node without overwriting other child nodes, use the Update Children method. When calling Update Children, you can update lower-level child values by specifying a path for the key. If data is stored in multiple locations to scale better, you can update all instances of that data using data fan-out. Simultaneous updates made this way are atomic: either all updates succeed or all updates fail. d. Delete data The simplest way to delete data is to call Remove Value on a reference to the location of that data. You can also delete by specifying a null Variant as the value for another write operation such as Set Value or Update Children. You can use this technique with Update Children to delete multiple children in a single API call.

27 e. Transactions When working with data that could be corrupted by concurrent modifications, such as incremental counters, you can use a transaction operation. You give this operation the Do Transaction function. This update function takes the current state of the data as an argument and returns the new desired state you would like to write. If another client writes to the location before your new value is successfully written, your update function is called again with the new current value, and the write is retried. If the transaction is rejected, the server returns the current value to the client, which runs the transaction again with the updated value. This repeats until the transaction is accepted or too many attempts have been made. Note 1: Because Run Transaction is called multiple times, it must be able to handle null data. Even if there is existing data in your remote database, it may not be locally cached when the transaction function is run, resulting in null for the initial value. Note 2: Only one transaction can be executed at the same time. How to make the Do Transaction function? 1. Create a new Blueprint Class inherited from Firebase Database Reference Do Transaction Proxy. 2. Override the Do Transaction function and make your own logic.

28 Do Transaction is your own transaction handler, which the Firebase Realtime Database library may call multiple times to apply changes to the data, and should return success or failure depending on whether it succeeds. This function will be called, possibly multiple times, with the current data at this location. The function is responsible for inspecting that data and modifying it as desired, then returning a Transaction Result specifying either that the Mutable Data was modified to a desired new state, or that the transaction should be aborted. Whenever this function is called, the Mutable Data passed in must be modified from scratch. Since this function may be called repeatedly for the same transaction, be extremely careful of any side effects that may be triggered by this function. In addition, this function is called from within the Firebase Realtime Database library's run loop, so care is also required when accessing data that may be in use by other threads in your application.

29 12. Realtime Features You can add listeners to subscribe on changes in realtime to data in specified location at the database. a. Value Listener You can use the On Value Changed callbacks to subscribe to changes to the contents at a given path. This callback is triggered once when the listener is attached and again every time the data, including children, changes. The callback is passed a snapshot containing all data at that location, including child data. If there is no data, the snapshot returned is null. A read can be canceled (On Cancelled) if the client doesn't have permission to read from a Firebase database location. Important: The On Value Changed event is called every time data is changed at the specified database reference, including changes to children. To limit the size of your snapshots, attach only at the highest level needed for watching changes. For example, attaching a listener to the root of your database is not recommended. b. Child Listener Child events are triggered in response to specific operations that happen to the children of a node from an operation such as a new child added through the Push Child method or a child being updated through the Update Children method. Each of these together can be useful for listening to changes to a specific node in a database. For example, a game might use these methods together to monitor activity in the comments of a game session.

30 On Child Added the callback is typically used to retrieve a list of items in a Firebase database. The On Child Added callback is called once for each existing child and then again every time a new child is added to the specified path. The listener is passed a snapshot containing the new child's data. On Child Changed the callback is called any time a child node is modified. This includes any modifications to descendants of the child node. It is typically used in conjunction with the On Child Added and On Child Removed calls to respond to changes to a list of items. The snapshot passed to the listener contains the updated data for the child. On Child Removed the callback is triggered when an immediate child is removed. It is typically used in conjunction with the On Child Added and On Child Changed callbacks. The snapshot passed to the callback contains the data for the removed child. On Child Moved the callback is triggered whenever the On Child Changed call is raised by an update that causes reordering of the child. It is used with data that is ordered with Order By Child or Order By Value. c. Remove Listeners You can remove attached listeners simply calling Remove Child Listener or Remove Value Listener.

31 13. Offline Features (Mobile Only) Firebase applications work even if your game temporarily loses its network connection. In addition, Firebase provides tools for persisting data locally, managing presence, and handling latency. a. Persistence Behavior Firebase apps automatically handle temporary network interruptions. Cached data is available while offline and Firebase resends any writes when network connectivity is restored. When you enable disk persistence, your app writes the data locally to the device so your app can maintain state while offline, even if the user or operating system restarts the app. You can enable disk persistence by ticking Enable Disk Persistence option in Plugin Settings: By enabling persistence, any data that the Firebase Realtime Database client would sync while online persists to disk and is available offline, even when the user or operating system restarts the game. This means your game works as it would online by using the local data stored in the cache. Listener callbacks will continue to fire for local updates. The Firebase Realtime Database client automatically keeps a queue of all write operations that are performed while your game is offline. When persistence is enabled, this queue is also persisted to disk so all your writes are available when the user or operating system restarts the game. When the game regains connectivity, all the operations are sent to the Firebase Realtime Database server. If your game uses Firebase Authentication, the Firebase Realtime Database client persists the user's authentication token across game restarts. If the auth token expires while your game is offline, the client pauses write operations until your game reauthenticates the user, otherwise the write operations might fail due to security rules.

32 b. Keeping Data Fresh The Firebase Realtime Database synchronizes and stores a local copy of the data for active listeners. In addition, you can keep specific locations in sync. The Firebase Realtime Database client automatically downloads the data at these locations and keeps it in sync even if the reference has no active listeners. You can turn synchronization back off with the following function. By default, 10MB of previously synced data is cached. This should be enough for most applications. If the cache outgrows its configured size, the Firebase Realtime Database purges data that has been used least recently. The data that is kept in sync is not purged from the cache. c. Querying Data Offline The Firebase Realtime Database stores data returned from a query for use when offline. For queries constructed while offline, the Firebase Realtime Database continues to work for previously loaded data. If the requested data hasn't loaded, the Firebase Realtime Database loads data from the local cache. When network connectivity is available again, the data loads and will reflect the query.

33 d. Save Data Offline If a client loses its network connection, your game will continue functioning correctly. Every client connected to a Firebase database maintains its own internal version of any active data. When data is written, it's written to this local version first. The Firebase client then synchronizes that data with the remote database servers and with other clients on a "best-effort" basis. As a result, all writes to the database trigger local events immediately, before any data is written to the server. This means your app remains responsive regardless of network latency or connectivity. Once connectivity is reestablished, your game receives the appropriate set of events so that the client syncs with the current server state, without having to write any custom code. e. Handling Transactions Offline Any transactions that are performed while the game is offline, are queued. Once the game regains network connectivity, the transactions are sent to the Realtime Database server. Even with persistence enabled, transactions are not persisted across game restarts. So, you cannot rely on transactions done offline being committed to your Firebase Realtime Database. To provide the best user experience, your game should show that a transaction has not been saved into your Firebase Realtime Database yet, or make sure your game remembers them manually and executes them again after a game restart.

34 f. Managing Presence In realtime games it is often useful to detect when clients connect and disconnect. For example, you may want to mark a user as 'offline' when their client disconnects. Firebase Database clients provide simple primitives that you can use to write to the database when a client disconnects from the Firebase Database servers. These updates occur whether the client disconnects cleanly or not, so you can rely on them to clean up data even if a connection is dropped or a client crashes. All write operations, including setting, updating, and removing, can be performed upon a disconnection. When you establish an On Disconnect operation, the operation lives on the Firebase Realtime Database server. The server checks security to make sure the user can perform the write event requested, and informs your game if it is invalid. The server then monitors the connection. If at any point the connection times out, or is actively closed by the Realtime Database client, the server checks security a second time (to make sure the operation is still valid) and then invokes the event. An On Disconnect event can also be canceled by Cancel: You can bind the following functions to On Disconnect: Set Value set the value of the data at the current location when the client disconnects. Set Value And Priority set the value and priority of the data at the current location when the client disconnects. Remove Value remove the value at the current location when the client disconnects. Update Children updates the specified child keys to the given values when the client disconnects.

35 g. Detecting Connection State For many presence-related features, it is useful for your game to know when it is online or offline. Firebase Realtime Database provides a special location at /.info/connected which is updated every time the Firebase Realtime Database client's connection state changes. Here is an example: /.info/connected is a boolean value which is not synchronized between Realtime Database clients because the value is dependent on the state of the client. In other words, if one client reads /.info/connected as false, this is no guarantee that a separate client will also read false. On Android, Firebase automatically manages connection state to reduce bandwidth and battery usage. When a client has no active listeners, no pending write or On Disconnect operations, and is not explicitly disconnected by the Go Offline method, Firebase closes the connection after 60 seconds of inactivity.

36 14. Cloud Functions Cloud Functions for Firebase lets you automatically run backend code in response to events triggered by Firebase features and HTTPS requests. Your code is stored in Google's cloud and runs in a managed environment. There's no need to manage and scale your own servers. The functions you write can respond to events generated by these other Firebase and Google Cloud features: Firebase Authentication Triggers Firebase Analytics Triggers Firebase Crashlytics Triggers Firebase Cloud Storage Triggers Firebase Realtime Database Triggers Firebase Remote Config Triggers Cloud Pub/Sub Triggers HTTP Triggers Cloud Firestore Triggers Official Firebase Cloud Functions documentation: Video introduction to Firebase Cloud Functions: Deploy your JavaScript or TypeScript code to Google servers with one command from the command line. After that, Firebase automatically scales up computing resources to match the usage patterns of your users. You never worry about credentials, server configuration, provisioning new servers, or decommissioning old ones. In many cases, developers prefer to control application logic on the server to avoid tampering on the client side. Also, sometimes it's not desirable to allow that code to be reverse engineered. Cloud Functions is fully insulated from the client, so you can be sure it is private and always does exactly what you want. How does it work? After you write and deploy a function, Google's servers begin to manage the function immediately, listening for events and running the function when it is triggered. As the load increases or decreases, Google responds by rapidly scaling the number of virtual server instances needed to run your function.

37 Lifecycle of a function 1. The developer writes code for a new function, selecting an event provider (such as Realtime Database), and defining the conditions under which the function should execute. 2. The developer deploys the function, and Firebase connects it to the selected event provider. 3. When the event provider generates an event that matches the function's conditions, the code is invoked. 4. If the function is busy handling many events, Google creates more instances to handle work faster. If the function is idle, instances are cleaned up. 5. When the developer updates the function by deploying updated code, all instances for the old version are cleaned up and replaced by new instances. 6. When a developer deletes the function, all instances are cleaned up, and the connection between the function and the event provider is removed. What Can I Do with Firebase Cloud Functions? 1. Notify players when something interesting happens a. Send message to the player when he completes for example 10 achievements. b. Send confirmation s to players subscribing/unsubscribing to a newsletter. c. Send a welcome when a user completes tutorial. d. Send an SMS confirmation when player creates a new account. 2. Perform Realtime Database sanitization and maintenance a. Convert text to emoji. b. Purge a deleted user s content from Realtime Database c. Limit the number of child nodes in a Firebase database. d. Track the number of elements in a Realtime Database list. e. Copy data from Realtime Database to Google Cloud BigQuery. f. Manage computed metadata for database records. 3. Execute intensive tasks in the cloud instead of in your game a. Periodically delete unused Firebase accounts. b. Automatically moderate uploaded images. c. Send bulk to users. d. Aggregate and summarize data periodically. e. Process a queue of pending work. 4. Integrate with third-party services and APIs a. Use Google Cloud Vision API to analyze and tag uploaded images.

38 b. Translate messages using Google Translate. c. Use auth providers like LinkedIn or Instagram to sign in users. d. Send a request to a webhook on Realtime Database writes. e. Enable full-text search on Realtime Database elements. f. Process payments from users. g. Create auto-responses to phone calls and SMS messages. h. Create a chatbot using Google Assistant. 5. And much more practically infinite possibilities a. Initialization Before making any call to Cloud Functions, you should first execute Firebase Cloud Functions Init function. If the result is a fail, study logs to find out what causes an issue. As Main Url you should provide Endpoint for your Trigger URLs which you can find on Firebase Dashboard -> Develop -> Functions. For example for Trigger URL: Main Url will be:

39 b. Call Function The Cloud Functions for Firebase implementation in our plugin lets you call functions directly from your game. To call a function from your game in this way, write and deploy an HTTPS Callable function in Cloud Functions, and then add client logic to call the function from your game by using node Firebase Cloud Functions Call Function. Warning: Plugin supports only HTTPS Callable functions ( Callable functions are similar to other HTTP functions, with these additional features: With callables, Firebase Authentication and FCM tokens, when available, are automatically included in requests. The functions.https.oncall trigger automatically deserializes the request body and validates auth tokens. More information how to write and deploy Cloud Functions you can find on the official Firebase Cloud Functions documentation:

40 15. Database Authentication Realtime Database plugin is compatible with Ultimate Mobile Kit plugin. If you use the latter, you should use its Authentication module as it is more powerful and advanced than in the Realtime Database plugin. If you haven't purchased the Ultimate Mobile Kit or your game is designed for platforms other than mobile, you can use simple Firebase Database Authentication module described in this section. a. Initialization Before making any call to Authentication, you should first execute Firebase Database Authentication Init function. If the result is a fail, study logs to find out what causes an issue. b. Create User With And Password Create a form that allows new users to register with your app using their address and a password. When a user completes the form, validate the address and password provided by the user, then pass them to the Firebase Database Create User With And Password function.

41 c. Send Verification You can send an address verification to a user with the Firebase Database Send Verification function. You can customize the template that is used in the Authentication section of the Firebase console, on the Templates page. See Templates in Firebase Help Center. d. Send Password Reset You can send a password reset to a user with the Firebase Database Send Password Reset method. You can customize the template that is used in the Authentication section of the Firebase console, on the Templates page. See Templates in Firebase Help Center. You can also send password reset s from the Firebase console.

42 e. Sign In With 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 address and password to Firebase Database Sign In With And Password. f. Update You can set a user's address with the Firebase Database Update function. Important: To delete a user, the user must have signed in recently.

43 g. Update Password You can set a user's password with the Firebase Database Update Password function. Important: To delete a user, the user must have signed in recently. h. Sign Out To sign out a user from the game, call the Firebase Database Sign Out function.

44 i. Is User Logged In You can check whether a user is logged in to your game calling Firebase Database Is User Logged In. j. Reauthenticate User Some security-sensitive actions such as deleting an account, setting a primary 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 Database Reauthenticate User. k. Authentication Listener To respond to sign-in and sign-out events, attach the RealtimeDatabase 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

45 object isn't in an intermediate state such as initialization when you get the current user. Sometimes user s ID token might be changed. Event User Id Token Changed is called when there is a change in the current user s ID token.

46 16. Installation without gamedna installer gamedna installer is a quality-of-life improvement which allows you automatically and very quickly download and install all necessary Third-Party SDKs needed for the plugin to function. For some reason, if you don t want to use gamedna installer, you can download and copy all needed files like described below. 1. Download and unpack 2. Copy directory firebase_cpp_sdk to (PLUGIN_DIR)/Source/ThirdParty/Universal/firebase_cpp_sdk/ 3. Move directory firebase_cpp_sdk/libs/android/arm64-v8a/gnustl/ to (PLUGIN_DIR)/Source/ThirdParty/Universal/firebase_cpp_sdk/libs/android/arm64/ 4. Move directory firebase_cpp_sdk/libs/android/armeabi-v7a/gnustl/ to (PLUGIN_DIR)/Source/ThirdParty/Universal/firebase_cpp_sdk/libs/android/armv7/ 5. Move directory firebase_cpp_sdk/libs/android/x86_64/gnustl/ to (PLUGIN_DIR)/Source/ThirdParty/Universal/firebase_cpp_sdk/libs/android/x86_64/ 6. Move directory firebase_cpp_sdk/libs/android/x86/gnustl/ to (PLUGIN_DIR)/Source/ThirdParty/Universal/firebase_cpp_sdk/libs/android/x86/ 7. Download and unpack 8. Create folder FirebaseCore.embeddedframework 9. Copy /Firebase/Analytics/FirebaseCore.framework to FirebaseCore.embeddedframework 10. Pack FirebaseCore.embeddedframework using a zip tool 11. Copy FirebaseCore.embeddedframework.zip to (PLUGIN_DIR)/Source/ThirdParty/IOS/FirebaseCore.embeddedframework.zip 12. Create folder FirebaseCoreDiagnostics.embeddedframework 13. Copy /Firebase/Analytics/FirebaseCoreDiagnostics.framework to FirebaseCoreDiagnostics.embeddedframework 14. Pack FirebaseCoreDiagnostics.embeddedframework using a zip tool 15. Copy FirebaseCoreDiagnostics.embeddedframework.zip to (PLUGIN_DIR)/Source/ThirdParty/IOS/FirebaseCoreDiagnostics.embeddedframewor k.zip 16. Create folder FirebaseInstanceID.embeddedframework 17. Copy /Firebase/Analytics/ FirebaseInstanceID.framework to FirebaseInstanceID.embeddedframework 18. Pack FirebaseInstanceID.embeddedframework using a zip tool 19. Copy FirebaseInstanceID.embeddedframework.zip to (PLUGIN_DIR)/Source/ThirdParty/IOS/ FirebaseInstanceID.embeddedframework.zip 20. Create folder FirebaseNanoPB.embeddedframework 21. Copy /Firebase/Analytics/ FirebaseNanoPB.framework to FirebaseNanoPB.embeddedframework

47 22. Pack FirebaseNanoPB.embeddedframework using a zip tool 23. Copy FirebaseNanoPB.embeddedframework.zip to (PLUGIN_DIR)/Source/ThirdParty/IOS/ FirebaseNanoPB.embeddedframework.zip 24. Create folder GoogleToolboxForMac.embeddedframework 25. Copy /Firebase/Analytics/ GoogleToolboxForMac.framework to GoogleToolboxForMac.embeddedframework 26. Pack GoogleToolboxForMac.embeddedframework using a zip tool 27. Copy GoogleToolboxForMac.embeddedframework.zip to (PLUGIN_DIR)/Source/ThirdParty/IOS/ GoogleToolboxForMac.embeddedframework.zip 28. Create folder GTMSessionFetcher.embeddedframework 29. Copy /Firebase/Auth/GTMSessionFetcher.framework to GTMSessionFetcher.embeddedframework 30. Pack GTMSessionFetcher.embeddedframework using a zip tool 31. Copy GTMSessionFetcher.embeddedframework.zip to (PLUGIN_DIR)/Source/ThirdParty/IOS/ GTMSessionFetcher.embeddedframework.zip 32. Create folder Protobuf.embeddedframework 33. Copy /Firebase/Crash/Protobuf.framework to Protobuf.embeddedframework 34. Pack Protobuf.embeddedframework using a zip tool 35. Copy Protobuf.embeddedframework.zip to (PLUGIN_DIR)/Source/ThirdParty/IOS/ Protobuf.embeddedframework.zip 36. Create folder GoogleAPIClientForREST.embeddedframework 37. Copy /Firebase/Invites/GoogleAPIClientForREST.framework to GoogleAPIClientForREST.embeddedframework 38. Pack GoogleAPIClientForREST.embeddedframework using a zip tool 39. Copy GoogleAPIClientForREST.embeddedframework.zip to (PLUGIN_DIR)/Source/ThirdParty/IOS/ GoogleAPIClientForREST.embeddedframework.zip 40. Create folder GoogleSignIn.embeddedframework 41. Copy /Firebase/Invites/GoogleSignIn.framework to GoogleSignIn.embeddedframework 42. Pack GoogleSignIn.embeddedframework using a zip tool 43. Copy GoogleSignIn.embeddedframework.zip to (PLUGIN_DIR)/Source/ThirdParty/IOS/ GoogleSignIn.embeddedframework.zip 44. Create folder GTMOAuth2.embeddedframework 45. Copy /Firebase/Invites/GTMOAuth2.framework to GTMOAuth2.embeddedframework 46. Pack GTMOAuth2.embeddedframework using a zip tool 47. Copy GTMOAuth2.embeddedframework.zip to (PLUGIN_DIR)/Source/ThirdParty/IOS/ GTMOAuth2.embeddedframework.zip 48. Create folder GTMSessionFetcher.embeddedframework 49. Copy /Firebase/Invites/GTMSessionFetcher.framework to GTMSessionFetcher.embeddedframework 50. Pack GTMSessionFetcher.embeddedframework using a zip tool

48 51. Copy GTMSessionFetcher.embeddedframework.zip to (PLUGIN_DIR)/Source/ThirdParty/IOS/ GTMSessionFetcher.embeddedframework.zip 52. Create folder FirebaseAuth.embeddedframework 53. Copy /Firebase/Auth/FirebaseAuth.framework to FirebaseAuth.embeddedframework 54. Pack FirebaseAuth.embeddedframework using a zip tool 55. Copy FirebaseAuth.embeddedframework.zip to (PLUGIN_DIR)/Source/ThirdParty/IOS/ FirebaseAuth.embeddedframework.zip 56. Create folder FirebaseDatabase.embeddedframework 57. Copy /Firebase/Database/FirebaseDatabase.framework to FirebaseDatabase.embeddedframework 58. Pack FirebaseDatabase.embeddedframework using a zip tool 59. Copy FirebaseDatabase.embeddedframework.zip to (PLUGIN_DIR)/Source/ThirdParty/IOS/ FirebaseDatabase.embeddedframework.zip 60. Create folder nanopb.embeddedframework 61. Copy /Firebase/Analytics/nanopb.framework to nanopb.embeddedframework 62. Pack nanopb.embeddedframework using a zip tool 63. Copy nanopb.embeddedframework.zip to (PLUGIN_DIR)/Source/ThirdParty/IOS/ nanopb.embeddedframework.zip 64. Create folder leveldb-library.embeddedframework 65. Copy /Firebase/Database /leveldb-library.framework to leveldblibrary.embeddedframework 66. Pack leveldb-library.embeddedframework using a zip tool 67. Copy leveldb-library.embeddedframework.zip to (PLUGIN_DIR)/Source/ThirdParty/IOS/leveldb-library.embeddedframework.zip

1. License. Copyright 2018 gamedna Ltd. All rights reserved.

1. License. Copyright 2018 gamedna Ltd. All rights reserved. Contents 1. License... 3 2. Plugin updates... 4 a. Update from previous versions to 2.6.0... 4 3. Introduction... 5 4. Getting started... 6 5. Example project... 8 6. GitHub Repository... 8 7. Recording

More information

1. License. 2. Introduction. a. Read Leaderboard b. Write and Flush Leaderboards Custom widgets, 3D widgets and VR mode...

1. License. 2. Introduction. a. Read Leaderboard b. Write and Flush Leaderboards Custom widgets, 3D widgets and VR mode... Contents 1. License... 3 2. Introduction... 3 3. Plugin updates... 5 a. Update from previous versions to 2.7.0... 5 4. Example project... 6 5. GitHub Repository... 6 6. Getting started... 7 7. Plugin usage...

More information

Contents. a. Initialization... 27

Contents. a. Initialization... 27 Contents 1. License... 6 2. Introduction... 7 3. Plugin updates... 8 a. Update from previous versions to 1.10.0... 8 4. Example project... 9 5. GitHub Repository... 9 6. Getting started... 10 7. Mobile

More information

Libelium Cloud Hive. Technical Guide

Libelium Cloud Hive. Technical Guide Libelium Cloud Hive Technical Guide Index Document version: v7.0-12/2018 Libelium Comunicaciones Distribuidas S.L. INDEX 1. General and information... 4 1.1. Introduction...4 1.1.1. Overview...4 1.2. Data

More information

CS371m - Mobile Computing. Persistence - Web Based Storage CHECK OUT g/sync-adapters/index.

CS371m - Mobile Computing. Persistence - Web Based Storage CHECK OUT   g/sync-adapters/index. CS371m - Mobile Computing Persistence - Web Based Storage CHECK OUT https://developer.android.com/trainin g/sync-adapters/index.html The Cloud. 2 Backend No clear definition of backend front end - user

More information

Batches and Commands. Overview CHAPTER

Batches and Commands. Overview CHAPTER CHAPTER 4 This chapter provides an overview of batches and the commands contained in the batch. This chapter has the following sections: Overview, page 4-1 Batch Rules, page 4-2 Identifying a Batch, page

More information

The Google File System

The Google File System October 13, 2010 Based on: S. Ghemawat, H. Gobioff, and S.-T. Leung: The Google file system, in Proceedings ACM SOSP 2003, Lake George, NY, USA, October 2003. 1 Assumptions Interface Architecture Single

More information

DreamFactory Security Guide

DreamFactory Security Guide DreamFactory Security Guide This white paper is designed to provide security information about DreamFactory. The sections below discuss the inherently secure characteristics of the platform and the explicit

More information

DSS User Guide. End User Guide. - i -

DSS User Guide. End User Guide. - i - DSS User Guide End User Guide - i - DSS User Guide Table of Contents End User Guide... 1 Table of Contents... 2 Part 1: Getting Started... 1 How to Log in to the Web Portal... 1 How to Manage Account Settings...

More information

Splashtop Enterprise for IoT Devices - Quick Start Guide v1.0

Splashtop Enterprise for IoT Devices - Quick Start Guide v1.0 Introduction For information about different deployment choices, please see chapter 3 of the full Splashtop Center Administrator s Guide. Splashtop Enterprise for IoT Devices is comprised of three components:

More information

Workshare Desktop App. User Guide

Workshare Desktop App. User Guide Workshare Desktop App User Guide February 2018 Workshare Desktop App User Guide Table of Contents Introducing the Workshare Desktop App...4 What is the Desktop App?... 5 Key features of the Workshare desktop

More information

VMware AirWatch Chrome OS Platform Guide Managing Chrome OS Devices with AirWatch

VMware AirWatch Chrome OS Platform Guide Managing Chrome OS Devices with AirWatch VMware AirWatch Chrome OS Platform Guide Managing Chrome OS Devices with AirWatch Workspace ONE UEM v9.4 Have documentation feedback? Submit a Documentation Feedback support ticket using the Support Wizard

More information

2. What is Google App Engine. Overview Google App Engine (GAE) is a Platform as a Service (PaaS) cloud computing platform for developing and hosting web applications in Google-managed data centers. Google

More information

RescueAssist. Administrator Guide. LogMeIn, Inc. 320 Summer St., Boston MA LogMeIn, Inc. All rights reserved.

RescueAssist. Administrator Guide. LogMeIn, Inc. 320 Summer St., Boston MA LogMeIn, Inc. All rights reserved. RescueAssist Administrator Guide LogMeIn, Inc. 320 Summer St., Boston MA 02210 2018 LogMeIn, Inc. All rights reserved. https://support.logmeininc.com Contents Using the Admin Center... 1 Log in to the

More information

Zumobi Brand Integration(Zbi) Platform Architecture Whitepaper Table of Contents

Zumobi Brand Integration(Zbi) Platform Architecture Whitepaper Table of Contents Zumobi Brand Integration(Zbi) Platform Architecture Whitepaper Table of Contents Introduction... 2 High-Level Platform Architecture Diagram... 3 Zbi Production Environment... 4 Zbi Publishing Engine...

More information

8.0 Help for Community Managers Release Notes System Requirements Administering Jive for Office... 6

8.0 Help for Community Managers Release Notes System Requirements Administering Jive for Office... 6 for Office Contents 2 Contents 8.0 Help for Community Managers... 3 Release Notes... 4 System Requirements... 5 Administering Jive for Office... 6 Getting Set Up...6 Installing the Extended API JAR File...6

More information

Using the VMware vcenter Orchestrator Client. vrealize Orchestrator 5.5.1

Using the VMware vcenter Orchestrator Client. vrealize Orchestrator 5.5.1 Using the VMware vcenter Orchestrator Client vrealize Orchestrator 5.5.1 You can find the most up-to-date technical documentation on the VMware website at: https://docs.vmware.com/ If you have comments

More information

IceWarp to IceWarp Migration Guide

IceWarp to IceWarp Migration Guide IceWarp Unified Communications IceWarp to IceWarp Migration Guide Version 12.0 IceWarp to IceWarp Migration Guide 2 Contents IceWarp to IceWarp Migration Guide... 4 Used Terminology... 4 Brief Introduction...

More information

IBM Campaign Version-independent Integration with IBM Engage Version 1 Release 3.1 April 07, Integration Guide IBM

IBM Campaign Version-independent Integration with IBM Engage Version 1 Release 3.1 April 07, Integration Guide IBM IBM Campaign Version-independent Integration with IBM Engage Version 1 Release 3.1 April 07, 2017 Integration Guide IBM Note Before using this information and the product it supports, read the information

More information

Coveo Platform 7.0. Atlassian Confluence V2 Connector Guide

Coveo Platform 7.0. Atlassian Confluence V2 Connector Guide Coveo Platform 7.0 Atlassian Confluence V2 Connector Guide Notice The content in this document represents the current view of Coveo as of the date of publication. Because Coveo continually responds to

More information

Setting Up Resources in VMware Identity Manager. VMware Identity Manager 2.8

Setting Up Resources in VMware Identity Manager. VMware Identity Manager 2.8 Setting Up Resources in VMware Identity Manager VMware Identity Manager 2.8 You can find the most up-to-date technical documentation on the VMware website at: https://docs.vmware.com/ If you have comments

More information

Using the VMware vrealize Orchestrator Client

Using the VMware vrealize Orchestrator Client Using the VMware vrealize Orchestrator Client vrealize Orchestrator 7.0 This document supports the version of each product listed and supports all subsequent versions until the document is replaced by

More information

Coveo Platform 7.0. Liferay Connector Guide

Coveo Platform 7.0. Liferay Connector Guide Coveo Platform 7.0 Liferay Connector Guide Notice The content in this document represents the current view of Coveo as of the date of publication. Because Coveo continually responds to changing market

More information

AppSense DataNow. Release Notes (Version 4.1) Components in this Release. These release notes include:

AppSense DataNow. Release Notes (Version 4.1) Components in this Release. These release notes include: AppSense DataNow Release Notes (Version 4.1) These release notes include: Components in this Release Important Upgrade Information New Features Bugs Fixed Known Issues and Limitations Supported Operating

More information

Talend Component tgoogledrive

Talend Component tgoogledrive Talend Component tgoogledrive Purpose and procedure This component manages files on a Google Drive. The component provides these capabilities: 1. Providing only the client for other tgoogledrive components

More information

FilesAnywhere Features List

FilesAnywhere Features List FilesAnywhere Feature List FilesAnywhere Page 1 of 9 Contents Basic Features... 3 Advanced Features... 7 Enterprise Features... 9 FilesAnywhere Page 2 of 9 Basic Features No File Size Limit: There is no

More information

Release Notes Release (December 4, 2017)... 4 Release (November 27, 2017)... 5 Release

Release Notes Release (December 4, 2017)... 4 Release (November 27, 2017)... 5 Release Release Notes Release 2.1.4. 201712031143 (December 4, 2017)... 4 Release 2.1.4. 201711260843 (November 27, 2017)... 5 Release 2.1.4. 201711190811 (November 20, 2017)... 6 Release 2.1.4. 201711121228 (November

More information

VMware AirWatch Google Sync Integration Guide Securing Your Infrastructure

VMware AirWatch Google Sync Integration Guide Securing Your  Infrastructure VMware AirWatch Google Sync Integration Guide Securing Your Email Infrastructure Workspace ONE UEM v9.5 Have documentation feedback? Submit a Documentation Feedback support ticket using the Support Wizard

More information

BIG-IP Access Policy Manager : Implementations. Version 12.1

BIG-IP Access Policy Manager : Implementations. Version 12.1 BIG-IP Access Policy Manager : Implementations Version 12.1 Table of Contents Table of Contents Web Access Management...11 Overview: Configuring APM for web access management...11 About ways to time out

More information

VMware AirWatch Chrome OS Platform Guide Managing Chrome OS Devices with AirWatch

VMware AirWatch Chrome OS Platform Guide Managing Chrome OS Devices with AirWatch VMware AirWatch Chrome OS Platform Guide Managing Chrome OS Devices with AirWatch AirWatch v9.3 Have documentation feedback? Submit a Documentation Feedback support ticket using the Support Wizard on support.air-watch.com.

More information

Google Sync Integration Guide. VMware Workspace ONE UEM 1902

Google Sync Integration Guide. VMware Workspace ONE UEM 1902 Google Sync Integration Guide VMware Workspace ONE UEM 1902 You can find the most up-to-date technical documentation on the VMware website at: https://docs.vmware.com/ If you have comments about this documentation,

More information

Nuxeo Server 9.1 Release Notes

Nuxeo Server 9.1 Release Notes Home (/) > Developer Documentation Center (/nxdoc/) > Nuxeo Server (/nxdoc/nuxeo-server/) > Nuxeo Server 9.1 Release Notes Nuxeo Server 9.1 Release Notes Updated: April 21, 2017 (https://github.com/nuxeo/doc.nuxeo.com-platform-spaces

More information

STARCOUNTER. Technical Overview

STARCOUNTER. Technical Overview STARCOUNTER Technical Overview Summary 3 Introduction 4 Scope 5 Audience 5 Prerequisite Knowledge 5 Virtual Machine Database Management System 6 Weaver 7 Shared Memory 8 Atomicity 8 Consistency 9 Isolation

More information

Early Data Analyzer Web User Guide

Early Data Analyzer Web User Guide Early Data Analyzer Web User Guide Early Data Analyzer, Version 1.4 About Early Data Analyzer Web Getting Started Installing Early Data Analyzer Web Opening a Case About the Case Dashboard Filtering Tagging

More information

Learn how to login to Sitefinity and what possible errors you can get if you do not have proper permissions.

Learn how to login to Sitefinity and what possible errors you can get if you do not have proper permissions. USER GUIDE This guide is intended for users of all levels of expertise. The guide describes in detail Sitefinity user interface - from logging to completing a project. Use it to learn how to create pages

More information

Sync User Guide. Powered by Axient Anchor

Sync User Guide. Powered by Axient Anchor Sync Powered by Axient Anchor TABLE OF CONTENTS End... Error! Bookmark not defined. Last Revised: Wednesday, October 10, 2018... Error! Bookmark not defined. Table of Contents... 2 Getting Started... 7

More information

IBM emessage Version 9 Release 1 February 13, User's Guide

IBM emessage Version 9 Release 1 February 13, User's Guide IBM emessage Version 9 Release 1 February 13, 2015 User's Guide Note Before using this information and the product it supports, read the information in Notices on page 471. This edition applies to version

More information

IBM Endpoint Manager Version 9.0. Software Distribution User's Guide

IBM Endpoint Manager Version 9.0. Software Distribution User's Guide IBM Endpoint Manager Version 9.0 Software Distribution User's Guide IBM Endpoint Manager Version 9.0 Software Distribution User's Guide Note Before using this information and the product it supports,

More information

TeamSpot 3. Introducing TeamSpot. TeamSpot 3 (rev. 25 October 2006)

TeamSpot 3. Introducing TeamSpot. TeamSpot 3 (rev. 25 October 2006) TeamSpot 3 Introducing TeamSpot TeamSpot 3 (rev. 25 October 2006) Table of Contents AN INTRODUCTION TO TEAMSPOT...3 INSTALLING AND CONNECTING (WINDOWS XP/2000)... 4 INSTALLING AND CONNECTING (MACINTOSH

More information

Cloud Help for Community Managers...3. Release Notes System Requirements Administering Jive for Office... 6

Cloud Help for Community Managers...3. Release Notes System Requirements Administering Jive for Office... 6 for Office Contents 2 Contents Cloud Help for Community Managers...3 Release Notes... 4 System Requirements... 5 Administering Jive for Office... 6 Getting Set Up...6 Installing the Extended API JAR File...6

More information

Integration Service. Admin Console User Guide. On-Premises

Integration Service. Admin Console User Guide. On-Premises Kony MobileFabric TM Integration Service Admin Console User Guide On-Premises Release 7.3 Document Relevance and Accuracy This document is considered relevant to the Release stated on this title page and

More information

VMware AirWatch Google Sync Integration Guide Securing Your Infrastructure

VMware AirWatch Google Sync Integration Guide Securing Your  Infrastructure VMware AirWatch Google Sync Integration Guide Securing Your Email Infrastructure AirWatch v9.2 Have documentation feedback? Submit a Documentation Feedback support ticket using the Support Wizard on support.air-watch.com.

More information

File Synchronization using API Google Drive on Android Operating System

File Synchronization using API Google Drive on Android Operating System File Synchronization using API Google Drive on Android Operating System Agustinus Noertjahyana, Kevin Darmawan, Justinus Andjarwirawan Informatics Engineering Department Petra Christian University Surabaya,

More information

2012 Microsoft Corporation. All rights reserved. Microsoft, Active Directory, Excel, Lync, Outlook, SharePoint, Silverlight, SQL Server, Windows,

2012 Microsoft Corporation. All rights reserved. Microsoft, Active Directory, Excel, Lync, Outlook, SharePoint, Silverlight, SQL Server, Windows, 2012 Microsoft Corporation. All rights reserved. Microsoft, Active Directory, Excel, Lync, Outlook, SharePoint, Silverlight, SQL Server, Windows, Windows Server, and other product names are or may be registered

More information

End User Manual. December 2014 V1.0

End User Manual. December 2014 V1.0 End User Manual December 2014 V1.0 Contents Getting Started... 4 How to Log into the Web Portal... 5 How to Manage Account Settings... 6 The Web Portal... 8 How to Upload Files in the Web Portal... 9 How

More information

Semester Project Report Mobile Application for Online Surakarta Battle

Semester Project Report Mobile Application for Online Surakarta Battle Semester Project Report Mobile Application for Online Surakarta Battle COMP4342 Mobile Computing Department of Computing The Hong Kong Polytechnic University CHAU Tsz Ling 15067489D FU Kuo-Hao, 14112466D

More information

Contents Using the Primavera Cloud Service Administrator's Guide... 9 Web Browser Setup Tasks... 10

Contents Using the Primavera Cloud Service Administrator's Guide... 9 Web Browser Setup Tasks... 10 Cloud Service Administrator's Guide 15 R2 March 2016 Contents Using the Primavera Cloud Service Administrator's Guide... 9 Web Browser Setup Tasks... 10 Configuring Settings for Microsoft Internet Explorer...

More information

Setting Up Resources in VMware Identity Manager (On Premises) Modified on 30 AUG 2017 VMware AirWatch 9.1.1

Setting Up Resources in VMware Identity Manager (On Premises) Modified on 30 AUG 2017 VMware AirWatch 9.1.1 Setting Up Resources in VMware Identity Manager (On Premises) Modified on 30 AUG 2017 VMware AirWatch 9.1.1 Setting Up Resources in VMware Identity Manager (On Premises) You can find the most up-to-date

More information

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 1. License The MIT License (MIT) Copyright (c) 2018 gamedna Ltd Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"),

More information

Privacy and Security in Online Social Networks Department of Computer Science and Engineering Indian Institute of Technology, Madras

Privacy and Security in Online Social Networks Department of Computer Science and Engineering Indian Institute of Technology, Madras Privacy and Security in Online Social Networks Department of Computer Science and Engineering Indian Institute of Technology, Madras Lecture 07 Tutorial 2 Part 1 Facebook API Hi everyone, welcome to the

More information

Repstor affinity. Installation and Configuration Guide(Generic)

Repstor affinity. Installation and Configuration Guide(Generic) Repstor affinity Installation and Configuration Guide(Generic) Document Version 3.7 April 2018 Contents 1. INTRODUCTION TO REPSTOR AFFINITY 3 ADVANTAGES OF REPSTOR AFFINITY... 3 2. REPSTOR AFFINITY INSTALLATION

More information

Vector Issue Tracker and License Manager - Administrator s Guide. Configuring and Maintaining Vector Issue Tracker and License Manager

Vector Issue Tracker and License Manager - Administrator s Guide. Configuring and Maintaining Vector Issue Tracker and License Manager Vector Issue Tracker and License Manager - Administrator s Guide Configuring and Maintaining Vector Issue Tracker and License Manager Copyright Vector Networks Limited, MetaQuest Software Inc. and NetSupport

More information

Release Notes for Dovecot Pro Minor release

Release Notes for Dovecot Pro Minor release Release Notes for Dovecot Pro Minor release 2.2.30.1 1. Shipped Products and Versions Dovecot Pro 2.2.30.1 Including Object Storage Plug-In, Full Text Search Plug-in and Unified Quota Plug-in. Important

More information

Zimbra Connector for Microsoft Outlook User Guide. Zimbra Collaboration

Zimbra Connector for Microsoft Outlook User Guide. Zimbra Collaboration Zimbra Connector for Microsoft Outlook User Guide Zimbra Collaboration 8.8.11 Table of Contents Legal Notices............................................................................... 1 1. Introduction..............................................................................

More information

Citrix Connector Citrix Systems, Inc. All rights reserved. p.1. About this release. System requirements. Technical overview.

Citrix Connector Citrix Systems, Inc. All rights reserved. p.1. About this release. System requirements. Technical overview. Citrix Connector 3.1 May 02, 2016 About this release System requirements Technical overview Plan Install Citrix Connector Upgrade Create applications Deploy applications to machine catalogs Publish applications

More information

F5 BIG-IQ Centralized Management: Local Traffic & Network. Version 5.2

F5 BIG-IQ Centralized Management: Local Traffic & Network. Version 5.2 F5 BIG-IQ Centralized Management: Local Traffic & Network Version 5.2 Table of Contents Table of Contents BIG-IQ Local Traffic & Network: Overview... 5 What is Local Traffic & Network?... 5 Understanding

More information

EMARSYS FOR MAGENTO 2

EMARSYS FOR MAGENTO 2 EMARSYS FOR MAGENTO 2 Integration Manual July 2017 Important Note: This PDF was uploaded in July, 2017 and will not be maintained. For the latest version of this manual, please visit our online help portal:

More information

Deploy Enhancements from Sandboxes

Deploy Enhancements from Sandboxes Deploy Enhancements from Sandboxes Salesforce, Spring 18 @salesforcedocs Last updated: April 13, 2018 Copyright 2000 2018 salesforce.com, inc. All rights reserved. Salesforce is a registered trademark

More information

IBM Campaign Version-independent Integration with IBM Watson Campaign Automation Version 1 Release 1.5 February, Integration Guide IBM

IBM Campaign Version-independent Integration with IBM Watson Campaign Automation Version 1 Release 1.5 February, Integration Guide IBM IBM Campaign Version-independent Integration with IBM Watson Campaign Automation Version 1 Release 1.5 February, 2018 Integration Guide IBM Note Before using this information and the product it supports,

More information

Oracle. Service Cloud Using Knowledge Advanced

Oracle. Service Cloud Using Knowledge Advanced Oracle Service Cloud Release August 2016 Oracle Service Cloud Part Number: Part Number: E77681-03 Copyright 2015, 2016, Oracle and/or its affiliates. All rights reserved Authors: The Knowledge Information

More information

Deploy Enhancements from Sandboxes

Deploy Enhancements from Sandboxes Deploy Enhancements from Sandboxes Salesforce, Spring 17 @salesforcedocs Last updated: March 10, 2017 Copyright 2000 2017 salesforce.com, inc. All rights reserved. Salesforce is a registered trademark

More information

Copyright 2017 Softerra, Ltd. All rights reserved

Copyright 2017 Softerra, Ltd. All rights reserved Copyright 2017 Softerra, Ltd. All rights reserved Contents Introduction Security Considerations Installation Configuration Uninstallation Automated Bulk Enrollment Troubleshooting Introduction Adaxes Self-Service

More information

Colligo Briefcase for Mac. Release Notes

Colligo Briefcase for Mac. Release Notes Colligo Briefcase for Mac Release Notes Contents Technical Requirements... 3 Release 7.5 06 Oct0ber 2017... 4 New in this Release... 4 Release 7.5 18 May 2017... 4 New in 7.5... 4 Issues 7.5... 5 Known

More information

GRS Enterprise Synchronization Tool

GRS Enterprise Synchronization Tool GRS Enterprise Synchronization Tool Last Revised: Thursday, April 05, 2018 Page i TABLE OF CONTENTS Anchor End User Guide... Error! Bookmark not defined. Last Revised: Monday, March 12, 2018... 1 Table

More information

Protection! User Guide. A d m i n i s t r a t o r G u i d e. v L i c e n s i n g S e r v e r. Protect your investments with Protection!

Protection! User Guide. A d m i n i s t r a t o r G u i d e. v L i c e n s i n g S e r v e r. Protect your investments with Protection! jproductivity LLC Protect your investments with Protection! User Guide Protection! L i c e n s i n g S e r v e r v 4. 9 A d m i n i s t r a t o r G u i d e tm http://www.jproductivity.com Notice of Copyright

More information

Enable the Always Offline Mode to Provide Faster Access to Files

Enable the Always Offline Mode to Provide Faster Access to Files Enable the Always Offline Mode to Provide Faster Access to Files 13 out of 16 rated this helpful - Rate this topic Published: April 18, 2012 Updated: July 3, 2013 Applies To: Windows 8, Windows 8.1, Windows

More information

Forescout. eyeextend for ServiceNow. Configuration Guide. Version 2.0

Forescout. eyeextend for ServiceNow. Configuration Guide. Version 2.0 Forescout Version 2.0 Contact Information Forescout Technologies, Inc. 190 West Tasman Drive San Jose, CA 95134 USA https://www.forescout.com/support/ Toll-Free (US): 1.866.377.8771 Tel (Intl): 1.408.213.3191

More information

Anchor User Guide. Presented by: Last Revised: August 07, 2017

Anchor User Guide. Presented by: Last Revised: August 07, 2017 Anchor User Guide Presented by: Last Revised: August 07, 2017 TABLE OF CONTENTS GETTING STARTED... 1 How to Log In to the Web Portal... 1 How to Manage Account Settings... 2 How to Configure Two-Step Authentication...

More information

12/05/2017. Geneva ServiceNow Custom Application Development

12/05/2017. Geneva ServiceNow Custom Application Development 12/05/2017 Contents...3 Applications...3 Creating applications... 3 Parts of an application...22 Contextual development environment... 48 Application management... 56 Studio... 64 Service Creator...87

More information

VMware AirWatch Android Platform Guide

VMware AirWatch Android Platform Guide VMware AirWatch Android Platform Guide Workspace ONE UEM v9.4 Have documentation feedback? Submit a Documentation Feedback support ticket using the Support Wizard on support.air-watch.com. This product

More information

Adobe Document Cloud esign Services. for Salesforce Version 17 Installation and Customization Guide

Adobe Document Cloud esign Services. for Salesforce Version 17 Installation and Customization Guide Adobe Document Cloud esign Services for Salesforce Version 17 Installation and Customization Guide 2015 Adobe Systems Incorporated. All rights reserved. Last Updated: August 28, 2015 Table of Contents

More information

Google GCP-Solution Architects Exam

Google GCP-Solution Architects Exam Volume: 90 Questions Question: 1 Regarding memcache which of the options is an ideal use case? A. Caching data that isn't accessed often B. Caching data that is written more than it's read C. Caching important

More information

Firebase Essentials. Android Edition

Firebase Essentials. Android Edition Firebase Essentials Android Edition Firebase Essentials Android Edition First Edition 2017 Neil Smyth / Payload Media, Inc. All Rights Reserved. This book is provided for personal use only. Unauthorized

More information

Android User Guide. User Guide 2.3

Android User Guide. User Guide 2.3 Android 2.3 THE INFORMATION CONTAINED IN THIS DOCUMENT IS PROVIDED AS IS WITHOUT ANY EXPRESS REPRESENTATIONS OF WARRANTIES. IN ADDITION, INFRAGISTCS, INC. DISCLAIMS ALL IMPLIED REPRESENTATIONS AND WARRANTIES,

More information

Coveo Platform 6.5. Microsoft SharePoint Connector Guide

Coveo Platform 6.5. Microsoft SharePoint Connector Guide Coveo Platform 6.5 Microsoft SharePoint Connector Guide Notice The content in this document represents the current view of Coveo as of the date of publication. Because Coveo continually responds to changing

More information

Salesforce Classic Guide for iphone

Salesforce Classic Guide for iphone Salesforce Classic Guide for iphone Version 35.0, Winter 16 @salesforcedocs Last updated: October 27, 2015 Copyright 2000 2015 salesforce.com, inc. All rights reserved. Salesforce is a registered trademark

More information

Eucalyptus User Console Guide

Eucalyptus User Console Guide Eucalyptus 3.4.1 User Console Guide 2013-12-11 Eucalyptus Systems Eucalyptus Contents 2 Contents User Console Overview...5 Install the Eucalyptus User Console...6 Install on Centos / RHEL 6.3...6 Configure

More information

Repstor affinity. Installation and Configuration Guide

Repstor affinity. Installation and Configuration Guide Repstor affinity Installation and Configuration Guide Document Version 3.6.8 November 2017 Contents 1. INTRODUCTION TO REPSTOR AFFINITY 3 ADVANTAGES OF REPSTOR AFFINITY... 3 2. REPSTOR AFFINITY INSTALLATION

More information

BlackBerry Developer Summit. A02: Rapid Development Leveraging BEMS Services and the AppKinetics Framework

BlackBerry Developer Summit. A02: Rapid Development Leveraging BEMS Services and the AppKinetics Framework BlackBerry Developer Summit A02: Rapid Development Leveraging BEMS Services and the AppKinetics Framework Page 2 of 21 Table of Contents 1. Workbook Scope... 4 2. Compatibility... 4 3. Source code download

More information

Beginners Guide to Lazada Open Platform

Beginners Guide to Lazada Open Platform Beginners Guide to Lazada Open Platform Introduction Become a developer Register an application Retrieve APP key and APP secret Request API permission Start development Seller Authorization Introduction

More information

USER GUIDE GigaCentral Android User Guide

USER GUIDE GigaCentral Android User Guide USER GUIDE GigaCentral Android User Guide Copyright 2016 by Inspire-Tech Pte Ltd. All rights reserved. All trademarks or registered trademarks mentioned in this document are properties of their respective

More information

FTP Service Reference

FTP Service Reference IceWarp Unified Communications Reference Version 11.4 Published on 2/9/2016 Contents... 3 About... 4 Reference... 5 General Tab... 5 Dialog... 6 FTP Site... 6 Users... 7 Groups... 11 Options... 14 Access...

More information

Chatter Answers Implementation Guide

Chatter Answers Implementation Guide Chatter Answers Implementation Guide Salesforce, Spring 16 @salesforcedocs Last updated: April 27, 2016 Copyright 2000 2016 salesforce.com, inc. All rights reserved. Salesforce is a registered trademark

More information

Offline-first PWA con Firebase y Vue.js

Offline-first PWA con Firebase y Vue.js Offline-first PWA con Firebase y Vue.js About me Kike Navalon, engineer Currently working at BICG playing with data You can find me at @garcianavalon 2 We live in a disconnected & battery powered world,

More information

NoSQL & Firebase. SWE 432, Fall Web Application Development

NoSQL & Firebase. SWE 432, Fall Web Application Development NoSQL & Firebase SWE 432, Fall 2018 Web Application Development Review: Nouns vs. Verbs URIs should hierarchically identify nouns describing resources that exist Verbs describing actions that can be taken

More information

ForeScout Extended Module for ServiceNow

ForeScout Extended Module for ServiceNow ForeScout Extended Module for ServiceNow Version 1.2 Table of Contents About ServiceNow Integration... 4 Use Cases... 4 Asset Identification... 4 Asset Inventory True-up... 5 Additional ServiceNow Documentation...

More information

Amazon AppStream 2.0: SOLIDWORKS Deployment Guide

Amazon AppStream 2.0: SOLIDWORKS Deployment Guide 2018 Amazon AppStream 2.0: SOLIDWORKS Deployment Guide Build an Amazon AppStream 2.0 environment to stream SOLIDWORKS to your users June 2018 https://aws.amazon.com/appstream2/ 1 Welcome This guide describes

More information

One Identity Active Roles 7.2. Replication: Best Practices and Troubleshooting Guide

One Identity Active Roles 7.2. Replication: Best Practices and Troubleshooting Guide One Identity Active Roles 7.2 Replication: Best Practices and Troubleshooting Copyright 2017 One Identity LLC. ALL RIGHTS RESERVED. This guide contains proprietary information protected by copyright. The

More information

Self-Provisioning. Self-Provisioning

Self-Provisioning. Self-Provisioning , on page 1 Settings, on page 3 User Profile Settings, on page 8 Set Up for New User, on page 9 Set Up for Existing User, on page 10 Set Up Cisco Unified Communications Manager to Support, on page 10 for

More information

Avalanche Remote Control User Guide. Version 4.1

Avalanche Remote Control User Guide. Version 4.1 Avalanche Remote Control User Guide Version 4.1 ii Copyright 2012 by Wavelink Corporation. All rights reserved. Wavelink Corporation 10808 South River Front Parkway, Suite 200 South Jordan, Utah 84095

More information

Tiger Bridge 1.0 Administration Guide

Tiger Bridge 1.0 Administration Guide Tiger Bridge 1.0 Administration Guide September 12, 2017 Copyright 2008-2017 Tiger Technology. All rights reserved. This publication, or parts thereof, may not be reproduced in any form, by any method,

More information

User Manual. Active Directory Change Tracker

User Manual. Active Directory Change Tracker User Manual Active Directory Change Tracker Last Updated: March 2018 Copyright 2018 Vyapin Software Systems Private Ltd. All rights reserved. This document is being furnished by Vyapin Software Systems

More information

djangotribune Documentation

djangotribune Documentation djangotribune Documentation Release 0.7.9 David THENON Nov 05, 2017 Contents 1 Features 3 2 Links 5 2.1 Contents................................................. 5 2.1.1 Install..............................................

More information

SitelokTM. Stripe Plugin V1.5

SitelokTM. Stripe Plugin V1.5 SitelokTM Stripe Plugin V1.5 Sitelok Stripe Plugin Manual Copyright 2015-2018 Vibralogix. All rights reserved. This document is provided by Vibralogix for informational purposes only to licensed users

More information

The Aggregator plugin PRINTED MANUAL

The Aggregator plugin PRINTED MANUAL The Aggregator plugin PRINTED MANUAL Aggregator plugin All rights reserved. No parts of this work may be reproduced in any form or by any means - graphic, electronic, or mechanical, including photocopying,

More information

VMware AirWatch Content Gateway for Linux. VMware Workspace ONE UEM 1811 Unified Access Gateway

VMware AirWatch Content Gateway for Linux. VMware Workspace ONE UEM 1811 Unified Access Gateway VMware AirWatch Content Gateway for Linux VMware Workspace ONE UEM 1811 Unified Access Gateway You can find the most up-to-date technical documentation on the VMware website at: https://docs.vmware.com/

More information

AvePoint Governance Automation 2. Release Notes

AvePoint Governance Automation 2. Release Notes AvePoint Governance Automation 2 Release Notes Service Pack 2, Cumulative Update 1 Release Date: June 2018 New Features and Improvements In the Create Office 365 Group/Team service > Governance Automation

More information

Reseller Portal Administrator Guide. CTERA Portal. November 2015 Version 5.0

Reseller Portal Administrator Guide. CTERA Portal. November 2015 Version 5.0 Reseller Portal Administrator Guide CTERA Portal November 2015 Version 5.0 Copyright 2009-2015 CTERA Networks Ltd. All rights reserved. No part of this document may be reproduced in any form or by any

More information

Workspace ONE Chrome OS Platform Guide. VMware Workspace ONE UEM 1811

Workspace ONE Chrome OS Platform Guide. VMware Workspace ONE UEM 1811 Workspace ONE Chrome OS Platform Guide VMware Workspace ONE UEM 1811 You can find the most up-to-date technical documentation on the VMware website at: https://docs.vmware.com/ If you have comments about

More information

Notification Template Limitations. Bridge Limitations

Notification Template Limitations. Bridge Limitations Oracle Cloud Known Issues for Oracle Identity Cloud Service Release 18.1.2 E55915-17 February 2018 Notification Template Limitations Note the following limitations with Oracle Identity Cloud Service notification

More information