Back

Running http requests in functions

  • 0
  • Flutter
  • Functions
Note
25 Nov, 2024, 21:56

I made a dart function to send push notification to users whena doc is created in the db, but its not working, the function it self doesnt work when it gets to the post request

TypeScript
Future<void> sendFeeNotification(
      String token, String lang, String amount) async {
    try {
      const String url = "https://fcm.googleapis.com/v1/projects/$projectName/messages:send";

      // Create the notification payload
      Map<String, dynamic> notificationPayload = {
        "message": {
          "token": token,
          "notification": {
            "title": lang == 'en'
                ? 'A new pending fee has been added to your account for $amount'
                : 'Une nouvelle redevance en attente a été ajoutée à votre compte pour $amount',
            "body": lang == 'en'
                ? 'Please check your account for more details'
                : 'Veuillez vérifier votre compte pour plus de détails',
          },
        }
      };

      try {
        print('Sending notification...');
        print(serverKey);
        
        //when it gets here nothing happens
        final response = await http.post(
          Uri.parse(url),
          headers: {
            "Content-Type": "application/json",
            "Authorization": "Bearer $serverKey",
          },
          body: jsonEncode(notificationPayload),
        );

        print('Response: ${response.body}');

        if (response.statusCode == 200) {
          print('Notification sent successfully');
          
        } else {
          print('Failed to send notification: ${response.body}');
          
        }
      } catch (e) {
        print('Error sending notification: $e');
        
      }
    } catch (e) {
      print('Error sending notification: $e');
      
    }
  }
TL;DR
Developers are encountering issues with a Dart function for push notifications. The function fails at the HTTP POST request part, with no response. The potential solution is to check the validity of the server key and the correct construction of the notification payload.
Reply

Reply to this thread by joining our Discord

Reply on Discord

Need support?

Join our Discord

Get community support by joining our Discord server.

Join Discord

Get premium support

Join Appwrite Pro and get email support from our team.

Learn more