getRef static method
dynamic
getRef({
- required String collectionName,
- List<
FireWhereField> ? where, - FireOrder? orderBy,
Implementation
static getRef({
required String collectionName,
List<FireWhereField>? where,
FireOrder? orderBy,
}) {
log("####################");
log("PATH: $collectionName");
log("####################");
var refs = [];
if (Platform.isWindows) {
var ref;
var type = FireCollectionType.collection;
//---- Add Sub Collection Features --//
if (collectionName.contains("/")) {
var paths = collectionName.split("/");
if (paths.length == 2) {
ref = FireDartFirestore.instance.collection(paths[0]).doc(paths[1]);
type = FireCollectionType.document;
} else {
ref = FireDartFirestore.instance.collection(paths[0]);
type = FireCollectionType.collection;
}
//---
} else {
ref = FireDartFirestore.instance.collection(collectionName);
}
//---- End --//
refs.add(ref);
if (type == FireCollectionType.collection) {
if (where != null) {
for (var i = 0; i < where.length; i++) {
if (where[i].isEqualTo != null) {
var newref = ref.where(
where[i].field,
isEqualTo: where[i].isEqualTo,
);
refs.add(newref);
} else if (where[i].isGreaterThan != null) {
var newref = ref.where(
where[i].field,
isGreaterThan: where[i].isGreaterThan,
);
refs.add(newref);
} else if (where[i].isGreaterThanOrEqualTo != null) {
var newref = ref.where(
where[i].field,
isGreaterThanOrEqualTo: where[i].isGreaterThanOrEqualTo,
);
refs.add(newref);
} else if (where[i].isLessThan != null) {
var newref = ref.where(
where[i].field,
isLessThan: where[i].isLessThan,
);
refs.add(newref);
} else if (where[i].isLessThanOrEqualTo != null) {
var newref = ref.where(
where[i].field,
isLessThanOrEqualTo: where[i].isLessThanOrEqualTo,
);
refs.add(newref);
}
}
}
if (orderBy != null) {
var newref = ref.orderBy(
orderBy.field,
descending: orderBy.descending,
);
refs.add(newref);
}
}
var finalRef = refs.last;
return finalRef;
} else {
var ref = fs.FirebaseFirestore.instance.collection(collectionName);
refs.add(ref);
if (where != null) {
for (var i = 0; i < where.length; i++) {
if (where[i].isEqualTo != null) {
var newref = ref.where(
where[i].field,
isEqualTo: where[i].isEqualTo,
);
refs.add(newref);
} else if (where[i].isGreaterThan != null) {
var newref = ref.where(
where[i].field,
isGreaterThan: where[i].isGreaterThan,
);
refs.add(newref);
} else if (where[i].isGreaterThanOrEqualTo != null) {
var newref = ref.where(
where[i].field,
isGreaterThanOrEqualTo: where[i].isGreaterThanOrEqualTo,
);
refs.add(newref);
} else if (where[i].isLessThan != null) {
var newref = ref.where(
where[i].field,
isLessThan: where[i].isLessThan,
);
refs.add(newref);
} else if (where[i].isLessThanOrEqualTo != null) {
var newref = ref.where(
where[i].field,
isLessThanOrEqualTo: where[i].isLessThanOrEqualTo,
);
refs.add(newref);
}
}
}
if (orderBy != null) {
var newref = ref.orderBy(
orderBy.field,
descending: orderBy.descending,
);
refs.add(newref);
}
var finalRef = refs.last;
print(finalRef);
print("---");
return finalRef;
}
}