【问题标题】:why my response.body is empty and my device token in my backend is null?为什么我的 response.body 为空,而我的后端设备令牌为空?
【发布时间】:2021-10-11 12:01:30
【问题描述】:

我正在将 Laravel 用于我的应用后端,并希望向我的 Flutter 应用发送推送通知 我的问题是为什么响应正文为空而后端的设备令牌为空?

static Future<http.Response> sendDeviceToken(String FCM_token) async{

    SharedPreferences sharedPreferences = await SharedPreferences.getInstance();
    int id=sharedPreferences.getInt("id");
    String myUrl = "$serverUrl/FCM";
    var resp = await http.post(Uri.encodeFull(myUrl),
      headers: <String, String>{
        "Accept": "application/json",
      },
      body: jsonEncode(<String, String>{
        'FCM_token': FCM_token,
        'id' : id.toString(),
      }),
    );
    print("res.statusCode: ${resp.statusCode}");
    print("res.body: ${resp.body}");
    return resp;
  }

我在这个函数中打印 FCM_token 并且打印正确。

【问题讨论】:

  • 您正在正确捕获令牌,只需将其发送到您的后端,它是一个字符串。使用用户 ID 发送并存储它们,然后您可以使用它们向此设备发送通知。
  • 听起来像是一个答案@HuthaifaMuayyad ;-)
  • 一如既往,满满的爱@FrankvanPuffelen

标签: laravel flutter push-notification firebase-cloud-messaging


【解决方案1】:

您正在正确捕获 FCM 令牌,只需使用 post 方法将其发送到您的后端,并准备好在您的后端捕获此帖子。 FCMtoken 是一个字符串。

例如,您也可以将其与用户 ID 一起发送,存储它们,然后您可以使用它们向该用户发送通知,因为您拥有 userId 和他们设备的 FCMtoken。

【讨论】:

  • 如何使用post方式发送? @Huthaifa
  • 将其发送到您的服务器,以便您的服务器可以将其存储在您的数据库中。从你的颤振应用程序中写一个简单的post 请求。如果你不知道怎么做,我建议你从那里开始寻找:) check here.
  • 运行这段代码会发生什么?问题出在哪里?
  • resp.body 打印为空,后端值为空
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-21
  • 2016-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-04
相关资源
最近更新 更多