Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cloud Messagingを実装 #49

Merged
merged 8 commits into from
Nov 26, 2024
Merged

Cloud Messagingを実装 #49

merged 8 commits into from
Nov 26, 2024

Conversation

MurakawaTakuya
Copy link
Owner

@MurakawaTakuya MurakawaTakuya commented Nov 24, 2024

Closes Cloud Messagingをテスト

概要

Firebase Cloud Messagingを用いた通知の送受信機能の作成

変更内容

  • Firebase Cloud Messagingで端末がフォアグラウンド・バックグラウンドに関わらず通知を受信できる機能を実装
    • バックグラウンド受信: Service Workerを使用してpublic\messaging-sw.jsのコードを実行し、通知を受信する
    • フォアグラウンド受信: src\utils\getNotification.tsonMessageで通知を受信

現時点で通知が2回届く問題が発生しているので解消したい 解消済み

確認方法

以下のコードを実行することで通知を送信することができる

const fetchData = async () => {
  const postData = {
    message: {
      token:
        "受信端末のFCM Token",
      notification: {
        title: "⚠️BeRealになる時⚠️",
        body: "2分以内にBeRealを投稿しないと他の友達の投稿が見れません!",
      },
    },
  };

  try {
    const response = await fetch(
      "https://fcm.googleapis.com//v1/projects/<projectId>/messages:send",
      {
        method: "POST",
        headers: {
          "Content-Type": "application/json",
          Authorization:
            "Bearer <access-token>",
        },
        body: JSON.stringify(postData),
      }
    );

    if (!response.ok) {
      const errorText = await response.text();
      throw new Error(`データの送信に失敗しました: ${errorText}`);
    }

    console.log("success:", postData);
  } catch (err) {
    console.error(err);
  }
};

fetchData();

image

チェックリスト

  • PRに必要な内容を記述し、Assignやタイトルを設定した
  • File Changedで不要な変更や誤った変更が無いか確認した
  • 対応したissueをProjectの"レビュー中・待機中"に移動した
  • レビューを頼んだ人にDiscordでお願いした
  • 機密情報が含まれていないことを確認した(含まれている場合は直ちにリモートからコミットを削除すること)
  • UIを変更した場合
    • PCで見た時に表示が崩れていないことを確認した
    • スマホでも正常に表示されることを確認した(大きい画面と小さい画面両方で)

@MurakawaTakuya MurakawaTakuya self-assigned this Nov 24, 2024
@MurakawaTakuya MurakawaTakuya force-pushed the feat/46-cloud-messaging branch 3 times, most recently from 829953e to 5c1bc21 Compare November 24, 2024 11:16
Copy link

github-actions bot commented Nov 24, 2024

Visit the preview URL for this PR (updated for commit 70331bc):

https://todo-real-c28fa--pr49-feat-46-cloud-messag-uepppype.web.app

(expires Tue, 03 Dec 2024 06:35:53 GMT)

🔥 via Firebase Hosting GitHub Action 🌎

Sign: cbf065b4d5e2f44e47cd594ff42f749fc108f410

@MurakawaTakuya MurakawaTakuya force-pushed the feat/46-cloud-messaging branch from 5c1bc21 to 1373837 Compare November 24, 2024 11:21
@MurakawaTakuya
Copy link
Owner Author

MurakawaTakuya commented Nov 24, 2024

テスト環境で通知が受信できることを確認した
(npm run devの環境では通知が届かなさそう) フォアグラウンドで正常に通知を受信できていないだけだった

https://fcm.googleapis.com//v1/projects/<project-id>/messages:send

Body

{
   "message":{
      "token":"`コンソールに出力されたcurrentToken`",
      "notification":{
        "body":"This is an FCM notification message!",
        "title":"FCM Message"
      }
   }
}

Header

Authorization: Bearer <server-token>

(Headerによる認証がうまくいかなかったのでPostmanのAuthを使用)

結果

Windows通知 コンソール
image image

@MurakawaTakuya
Copy link
Owner Author

ビルド後にローカルでhttp-serverを立てても受信できた

@MurakawaTakuya MurakawaTakuya force-pushed the feat/46-cloud-messaging branch from f02f6ee to e050793 Compare November 24, 2024 11:36
@MurakawaTakuya
Copy link
Owner Author

MurakawaTakuya commented Nov 24, 2024

Androidでも通知を受信できた

ただ、バックグラウンドの場合しか動作してないみたい、フォアグラウンドの場合に通知が来なかった 解消済み

@MurakawaTakuya MurakawaTakuya force-pushed the feat/46-cloud-messaging branch 6 times, most recently from 3628df9 to 6f651ec Compare November 25, 2024 13:53
@MurakawaTakuya MurakawaTakuya force-pushed the feat/46-cloud-messaging branch from 6f651ec to 27a4a8f Compare November 26, 2024 05:19
@MurakawaTakuya MurakawaTakuya force-pushed the feat/46-cloud-messaging branch from 27a4a8f to 8b9f856 Compare November 26, 2024 06:07
@MurakawaTakuya MurakawaTakuya changed the title WIP: Cloud Messagingを実装 Cloud Messagingを実装 Nov 26, 2024
@MurakawaTakuya MurakawaTakuya marked this pull request as ready for review November 26, 2024 06:15
@MurakawaTakuya
Copy link
Owner Author

MurakawaTakuya commented Nov 26, 2024

スマホの場合フォアグラウンドの通知が来ないのと、通知を押してもタブが開かれない
後々直そう

@MurakawaTakuya MurakawaTakuya merged commit 32ab2fb into main Nov 26, 2024
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Cloud Messagingをテスト
1 participant