Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.gameball.co/llms.txt

Use this file to discover all available pages before exploring further.

Push Notifications

Gameball Flutter SDK supports registering push tokens for Firebase and Huawei devices. Pass the token and provider when initializing the customer.

Register the Push Token

import 'package:gameball_sdk/gameball_sdk.dart';
import 'package:gameball_sdk/models/enums/push_provider.dart';

final request = InitializeCustomerRequestBuilder()
    .customerId("customer-123")
    .email("john@example.com")
    .deviceToken(firebaseToken)           // FCM token
    .pushProvider(PushProvider.Firebase)  // or PushProvider.Huawei
    .build();

await GameballApp.getInstance().initializeCustomer(request, (response, error) {
  if (error != null) {
    print("Failed to register push token: $error");
  }
});
deviceToken and pushProvider must be provided together. If one is set, the other is required.

Handle Token Refresh (Firebase example)

import 'package:firebase_messaging/firebase_messaging.dart';
import 'package:gameball_sdk/gameball_sdk.dart';
import 'package:gameball_sdk/models/enums/push_provider.dart';

FirebaseMessaging.instance.onTokenRefresh.listen((token) async {
  final refreshRequest = InitializeCustomerRequestBuilder()
      .customerId("customer-123")
      .deviceToken(token)
      .pushProvider(PushProvider.Firebase)
      .build();

  await GameballApp.getInstance().initializeCustomer(refreshRequest, (res, err) {
    if (err != null) {
      print("Failed to refresh push token: $err");
    }
  });
});

Huawei Devices

import 'package:gameball_sdk/gameball_sdk.dart';
import 'package:gameball_sdk/models/enums/push_provider.dart';

final huaweiRequest = InitializeCustomerRequestBuilder()
    .customerId("customer-123")
    .deviceToken(hmsToken)
    .pushProvider(PushProvider.Huawei)
    .build();

await GameballApp.getInstance().initializeCustomer(huaweiRequest, (res, err) {
  // Handle response
});
Call initializeCustomer after login/registration with the latest token to keep notifications working across devices.