Skip to main content

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.