Enrichment

Enrichment of Collection Entries

Objects stored inside collections can be embedded inside activities or user objects. This allows you to integrate with Stream without building a complex integration with another database. Stream’s collections can be used as your data source for data enrichment.

// first we add our object to the food collection
final cheeseBurger = await client.collections.add('food', {
 'name': 'Cheese Burger',
 'ingredients': ['cheese', 'burger', 'bread', 'lettuce', 'tomato'],
});

// the object returned by .add can be embedded directly inside of an activity
final activityId = await user1.addActivity(Activity(
 actor: client.currentUser!.userId,
 verb: 'grill',
 object: cheeseBurger.ref,
));

// if we now read the feed, the activity we just added will include the entire full object
await user1.getEnrichedActivities();

// we can then update the object and Stream will propagate the change to all activities
 await client.collections.update(cheeseBurger.copyWith(data: {
  'name': 'Amazing Cheese Burger',
  'ingredients': ['cheese', 'burger', 'bread', 'lettuce', 'tomato'],
 }));
© Getstream.io, Inc. All Rights Reserved.