getFriendshipStatus method
Retrieves the current friendship status between two users.
Returns null
if no friendship exists.
Implementation
Future<String?> getFriendshipStatus(
String currentEmail, String otherUserName) async {
final usersRef = FirebaseFirestore.instance.collection('users');
final userQuery =
await usersRef.where('email', isEqualTo: currentEmail).get();
final otherUserQuery =
await usersRef.where('username', isEqualTo: otherUserName).get();
if (userQuery.docs.isEmpty || otherUserQuery.docs.isEmpty) return null;
final userRef = userQuery.docs.first.reference;
final otherUserRef = otherUserQuery.docs.first.reference;
final friendshipQuery = await FirebaseFirestore.instance
.collection('friendships')
.where(Filter.or(
Filter.and(Filter('sender', isEqualTo: userRef),
Filter('receiver', isEqualTo: otherUserRef)),
Filter.and(Filter('sender', isEqualTo: otherUserRef),
Filter('receiver', isEqualTo: userRef)),
))
.get();
if (friendshipQuery.docs.isNotEmpty) {
return friendshipQuery.docs.first.get('status');
}
return null;
}