StateSubscription<T extends GeneratedMessage>.of constructor

StateSubscription<T extends GeneratedMessage>.of(
  1. FirebaseSubscription firebaseSubscription,
  2. BuilderInfo builderInfoForType,
  3. FirebaseClient database
)

Creates a new instance which broadcasts updates from under the given Firebase node.

Implementation

factory StateSubscription.of(FirebaseSubscription firebaseSubscription,
                             BuilderInfo builderInfoForType,
                             FirebaseClient database) {
    var subscription = firebaseSubscription.subscription;
    var nodePath = firebaseSubscription.nodePath.value;
    var itemAdded = database
        .childAdded(nodePath)
        .map((json) => parseIntoNewInstance<T>(builderInfoForType, json));
    var itemChanged = database
        .childChanged(nodePath)
        .map((json) => parseIntoNewInstance<T>(builderInfoForType, json));
    var itemRemoved = database.childRemoved(nodePath)
        .map((json) => parseIntoNewInstance<T>(builderInfoForType, json));
    return StateSubscription._(subscription, itemAdded, itemChanged, itemRemoved);
}