Push Test

Last Edit: Feb 02 2020

Once you're all setup with push notifications, you can use the CLI to test how the these notifications will look for your devices.

In preparation of this make sure that:

  • Your app has push notifications configured for at least one provider(APNs or Firebase)

  • You have a user that has at least one device associated

The base command for testing push notifications is:


stream chat:push:test --user_id 'user_123'
                    

This will do several things for you:

  1. Pick a random message from a channel that this user is part of

  2. Use the notification templates configured for your push providers to render the payload using this message

  3. Send this payload to all of the user's devices

This particular use case is ideal for testing a newly configured app, to make sure the push notifications are exactly as wanted.

In some other cases, your app is already configured with push notifications and is running smoothly, but you want to try out a new notification template. For example, let's say you want to test a new APN notification template:


stream chat:push:test --user_id 'user_123' --apn_notification_template '{"aps":{"alert":{"title":"{{ sender.name }} @ {{ channel.name }}","body":"testing out new stuff:{{ message.text }}"},"category":"NEW_MESSAGE_2"}}'
                    

As you can see, this one time only, the new template will be used for the push notification instead of the configured one:

Here's a full list of parameters that you can use with the test command:

Push Test Parameters

Name Type Description Default Optional
user_id string The user ID -
message_id string ID of the message that should be used instead of a random one. If the message doesn't exist, an error will occur -
apn_notification_template string Notification template to be used instead of the configured APN one. This is one time only. -
firebase_notification_template string Notification template to be used instead of the configured APN one. This is one time only. -
firebase_data_template string Data template to be used instead of the configured Firebase one. This is one time only. -