Call a Function - Java SDK
On this page
Realm is now Atlas Device SDK – Learn More
The examples in this section demonstrate calling a simple function named
sum
that takes two arguments, adds them, and returns the result:
// sum: adds two numbers exports = function(a, b) { return a + b; };
Call a Function by Name
To execute a function from the SDK, use the getFunctions() method of the your App to retrieve a Functions manager. Pass the name and parameters of the function you would like to call to callFunction() or callFunctionAsync():
String appID = YOUR_APP_ID; // replace this with your App ID App app = new App(new AppConfiguration.Builder(appID).build()); Credentials credentials = Credentials.anonymous(); app.loginAsync(credentials, it -> { if (it.isSuccess()) { User user = app.currentUser(); assert user != null; Functions functionsManager = app.getFunctions(user); List<Integer> args = Arrays.asList(1, 2); functionsManager.callFunctionAsync("sum", args, Integer.class, result -> { if (result.isSuccess()) { Log.v("EXAMPLE", "Sum value: " + result.get()); } else { Log.e("EXAMPLE", "failed to call sum function with: " + result.getError()); } }); } else { Log.e("EXAMPLE", "Error logging into the Realm app. Make sure that anonymous authentication is enabled. Error: " + it.getError()); } });
val appID = YOUR_APP_ID // replace this with your App ID val app: App = App(AppConfiguration.Builder(appID).build()) val anonymousCredentials: Credentials = Credentials.anonymous() app.loginAsync(anonymousCredentials) { if (it.isSuccess) { val user: User? = app.currentUser() val functionsManager: Functions = app.getFunctions(user) val args: List<Int> = listOf(1, 2) functionsManager.callFunctionAsync("sum", args, Integer::class.java) { result -> if (result.isSuccess) { Log.v("EXAMPLE", "Sum value: ${result.get()}") } else { Log.e("EXAMPLE", "failed to call sum function with: " + result.error) } } } else { Log.e("EXAMPLE", "Error logging into the Realm app. Make sure that anonymous authentication is enabled. Error: " + it.error) } }