Advertisement
Shockrate

gruppi

Mar 3rd, 2023 (edited)
24
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.04 KB | None | 0 0
  1. static Future<void> existingGroup(myUID, toUID) async {
  2. List<String> users = [myUID, toUID];
  3. final querySnapshot = await FirebaseFirestore.instance
  4. .collection('users')
  5. .where('UID', isEqualTo: myUID)
  6. .get();
  7.  
  8. for (var doc in querySnapshot.docs) {
  9. // Getting data directly
  10. List<dynamic> groups = doc.get('groups');
  11. var conteggio = groups.length;
  12. if (conteggio > 0) {
  13. groups.forEach(
  14. (element) async {
  15. final groupSnapshot = await FirebaseFirestore.instance
  16. .collection('groups')
  17. .where('id', isEqualTo: element)
  18. .where('members', arrayContains: toUID)
  19. .get();
  20.  
  21. for (var gruppos in groupSnapshot.docs) {
  22. String gruppo = gruppos.get('id');
  23. print("gruppo $gruppo");
  24. if (gruppo != '') {
  25. print('si');
  26. // GRUPPO ESISTE
  27. } else {
  28. print('no');
  29. // GRUPPO NON ESISTE
  30. createGroup(myUID, toUID);
  31. }
  32. }
  33. },
  34. );
  35. } else {
  36. createGroup(myUID, toUID);
  37. }
  38. }
  39. }
  40.  
  41.  
  42. static Future<String> createGroup(myUID, toUID) async {
  43. final Map<String, dynamic> data = {
  44. "members": [myUID, toUID],
  45. "createdOn": FieldValue.serverTimestamp(),
  46. "id": ""
  47. };
  48. String chatID = "";
  49. await FirebaseFirestore.instance
  50. .collection("groups")
  51. .add(data)
  52. .then((docRef) {
  53. final id = <String, String>{"id": docRef.id};
  54.  
  55. FirebaseFirestore.instance.collection("groups").doc(docRef.id).update(id);
  56. updateUserGroups(docRef.id, myUID);
  57. updateUserGroups(docRef.id, toUID);
  58. chatID = docRef.id;
  59. });
  60. return chatID;
  61. }
  62.  
  63. static Future<void> updateUserGroups(chatID, userUID) async {
  64. await FirebaseFirestore.instance.collection('users').doc(userUID).update({
  65. 'groups': FieldValue.arrayUnion([chatID])
  66. });
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement