从应用发送 Firebase 通知请求

Posted

技术标签:

【中文标题】从应用发送 Firebase 通知请求【英文标题】:Send request for firebase notification from the app 【发布时间】:2017-05-09 10:38:13 【问题描述】:

我在我的 android 应用中使用 Firebase 服务推送通知。该服务运行良好,我能够从 firebase 控制台管理员向所有用户和单个用户发送通知。

我的问题是:我想在用户在应用上发布帖子后发送自动通知(不使用管理员)。

    用户发布帖子 使用用户 ID 向 Firebase API 发送请求 Firebase 生成任务通知(30 分钟)并发送给用户

从哪里开始?有什么想法吗?

【问题讨论】:

【参考方案1】:

使用 okHttp3 库向 firebase 发送请求以向特定用户发送通知。

 RequestBody requestBody = null;
            try 
                requestBody = RequestBody.create(MEDIA_TYPE_JSON, getValidJsonBody().toString());
             catch (JSONException e) 
                e.printStackTrace();
            

            Request request = new Request.Builder()
                    .addHeader(CONTENT_TYPE, APPLICATION_JSON)
                    .addHeader(AUTHORIZATION, AUTH_KEY)
                    .url(FCM_URL)
                    .post(requestBody)
                    .build();

            Call call = new OkHttpClient().newCall(request);
            call.enqueue(new Callback() 
                @Override
                public void onFailure(Call call, IOException e) 
                    Log.e(TAG, "onGetAllUsersFailure: " + e.getMessage());
                

                @Override
                public void onResponse(Call call, Response response) throws IOException 
                    if (response.isSuccessful())
                        Log.e(TAG, "onResponse: " + response.body().string());
                
            );
        

        private JSONObject getValidJsonBody() throws JSONException 
            JSONObject jsonObjectBody = new JSONObject();
            jsonObjectBody.put(KEY_TO, mReceiverFirebaseToken);

            JSONObject jsonObjectData = new JSONObject();
            jsonObjectData.put(KEY_TITLE, mTitle);
            jsonObjectData.put(KEY_TEXT, mMessage);
            jsonObjectData.put(KEY_USERNAME, mUsername);
            jsonObjectData.put(KEY_UID, mUid);
            jsonObjectData.put(KEY_FCM_TOKEN, mFirebaseToken);
            jsonObjectBody.put(KEY_DATA, jsonObjectData);

            return jsonObjectBody;
        

【讨论】:

以上是关于从应用发送 Firebase 通知请求的主要内容,如果未能解决你的问题,请参考以下文章

在应用程序被杀死后,使用 HTTP 请求通过 Firebase(FCM)向 iOS 设备发送推送通知 [重复]

Firebase Cloud Messaging 通知未显示在 iOS 设备上(前台和后台)

如何向 ios 应用程序发送 Firebase 推送通知

您如何向从应用程序本身订阅主题的用户发送 Firebase 推送通知

Flutter Cloud Messaging:如何从应用程序发送通知(而不是从 Firebase 控制台)

如何从设备本身发送 Firebase 推送通知? [复制]