This guide shows how to migrate push device management code from stream-chat to getstream.
Before (stream-chat):
from stream_chat import StreamChat
client = StreamChat(api_key="your-api-key", api_secret="your-api-secret")
client.add_device(
device_id="apn-device-token",
push_provider="apn",
user_id="user-1",
push_provider_name="my-apn-provider",
)After (getstream):
from getstream import Stream
client = Stream(api_key="your-api-key", api_secret="your-api-secret")
response = client.create_device(
id="apn-device-token",
push_provider="apn",
user_id="user-1",
push_provider_name="my-apn-provider",
)Key changes:
add_device()renamed tocreate_device()device_idparameter renamed toid
Before (stream-chat):
from stream_chat import StreamChat
client = StreamChat(api_key="your-api-key", api_secret="your-api-secret")
client.add_device(
device_id="fcm-registration-token",
push_provider="firebase",
user_id="user-1",
)After (getstream):
from getstream import Stream
client = Stream(api_key="your-api-key", api_secret="your-api-secret")
response = client.create_device(
id="fcm-registration-token",
push_provider="firebase",
user_id="user-1",
)Key changes:
- Same pattern:
add_device()becomescreate_device(),device_idbecomesid
Before (stream-chat):
The legacy SDK does not have explicit VoIP device support.
After (getstream):
from getstream import Stream
client = Stream(api_key="your-api-key", api_secret="your-api-secret")
response = client.create_device(
id="voip-device-token",
push_provider="apn",
user_id="user-1",
voip_token=True,
)Key changes:
- The new SDK adds
voip_token=Truefor Apple VoIP push tokens
Before (stream-chat):
from stream_chat import StreamChat
client = StreamChat(api_key="your-api-key", api_secret="your-api-secret")
response = client.get_devices("user-1")
devices = response["devices"]After (getstream):
from getstream import Stream
client = Stream(api_key="your-api-key", api_secret="your-api-secret")
response = client.list_devices(user_id="user-1")
devices = response.data.devicesKey changes:
get_devices()renamed tolist_devices()- Response accessed via typed
response.data.devicesinstead of dict key access
Before (stream-chat):
from stream_chat import StreamChat
client = StreamChat(api_key="your-api-key", api_secret="your-api-secret")
client.delete_device(device_id="device-123", user_id="user-1")After (getstream):
from getstream import Stream
client = Stream(api_key="your-api-key", api_secret="your-api-secret")
response = client.delete_device(id="device-123", user_id="user-1")Key changes:
device_idparameter renamed toid
| Use Case | stream-chat | getstream |
|---|---|---|
| Add device | client.add_device(device_id, push_provider, user_id) |
client.create_device(id, push_provider, user_id) |
| List devices | client.get_devices(user_id) |
client.list_devices(user_id) |
| Delete device | client.delete_device(device_id, user_id) |
client.delete_device(id, user_id) |