join method

JoinQueryBuilder join(
  1. QueryBuilder queryBuilder, {
  2. required Alias alias,
  3. required (FieldName, FieldName) joinFields,
  4. Alias? leftAlias,
  5. dynamic isInner = false,
})

Implementation

JoinQueryBuilder join(QueryBuilder queryBuilder,
    {required Alias alias,
    required (FieldName left, FieldName right) joinFields,
    Alias? leftAlias,
    isInner = false}) {
  leftAlias ??= _latestAlias;
  final joinCondition = JoinCondition(
      leftAlias: leftAlias,
      left: joinFields.$1,
      right: joinFields.$2,
      isInner: isInner);
  final newAliases = <Alias, List<Alias>>{..._leftToRight, alias: []};
  newAliases[leftAlias]!.add(alias);
  return JoinQueryBuilder(
    _collectionName,
    _integrationId,
    _querySubscriptionManager,
    _documentReferenceFactory,
    _queryBuilderFactory,
    _rootAlias,
    alias,
    newAliases,
    {..._joins, alias: queryBuilder.build()},
    {..._joinConditions, alias: joinCondition},
    _queryBuilder,
  );
}