bestsource

Firebase Cloud Messaging in Firebase Cloud Functions를 사용하여 푸시 알림을 보내려고 할 때 요청한 엔티티를 찾을 수 없습니다.

bestsource 2023. 6. 28. 21:52
반응형

Firebase Cloud Messaging in Firebase Cloud Functions를 사용하여 푸시 알림을 보내려고 할 때 요청한 엔티티를 찾을 수 없습니다.

다음 코드로 Firebase Cloud 함수에서 FCM을 통해 멀티캐스트 알림을 보내려고 합니다.

const message = {
    tokens: recipients,
    notification: {
        title: title,
        body: body
    },
    data: {
        projectPartnerId: projectPartnerId
    }
};
return admin.messaging().sendMulticast(message);

푸시 알림이 하나도 전송되지 않습니다.각 응답에는 "Requested entity를 찾을 수 없습니다."라는 동일한 메시지가 포함된 오류가 있습니다.

Google Cloud 콘솔에서 API를 활성화했습니다(Firebase 설명서 어디에도 언급되지 않았지만 필요한 것으로 나타남).제가 뭘 더 할 수 있을지 모르겠어요.그리고 HTTP API 또는 레거시 API와 관련된 다른 모든 질문들을 찾을 수 있었습니다.저는 최신 버전의 Firebase Admin SDK를 사용하고 있습니다.

알았어요.그래서 분명히, 이 오류는 내가 보내려는 FCM 토큰이 더 이상 등록되지 않을 때 발생합니다."messaging/registration-token-not-registered"오류 코드그런 경우에는 사용자 토큰에서 이 토큰을 제거하고 완료하기만 하면 됩니다.

@user1123432에서 언급한 바와 같이 저는 아래와 같이 했습니다.

try {

// Logic to send a push notification goes here

 catch (e: Exception) {
    logger.error("Firebase Notification Failed: ${e.message}")
     if (e is FirebaseMessagingException) {
        logger.info("Firebase Notification token for the user: ${user.userName}, errorCodeName: ${e.errorCode.name}, messagingErrorCodeName: ${e.messagingErrorCode.name}")
        if (e.errorCode.name == "INVALID_ARGUMENT" || e.errorCode.name == "NOT_FOUND" || e.messagingErrorCode.name == "UNREGISTERED") {
            myNotificationTokenRepo.clearTokenByUserId(user.uuid)
            logger.info("Deleted Firebase Notification token for the user: ${user.userName}")
        }
    }
}

최근 iOS 앱의 푸시 알림을 설정할 때 이 문제가 발생했습니다. 답변을 통해 GitHub 스레드에 게시된 픽스를 팔로우하여 성공적인 픽스를 찾았습니다.문제는 다음과 같습니다.Info.plist FirebaseAppDelegateProxyEnabled문자열이 아닌 bool로 설정되어 있으므로:

    <key>FirebaseAppDelegateProxyEnabled</key>
    </false>

된다

    <key>FirebaseAppDelegateProxyEnabled</key>
    <string>0</string>

GitHub 댓글은 또한 중간 게시물을 통해 맛을 구현하고 추가하는 것을 설명합니다.Firebase/Messaging에게Podfile이것은 iOS 앱을 만들기 위해 Flutter를 사용하는 것과 관련이 있습니다.제 프로젝트는 Flutter로 구축되었지만 Flutter 자체에서 관리하기 때문에 맛에 대한 구현이나 Pod 파일 업데이트가 필요하지 않았습니다.

같은 문제에 직면한 후에, 이것은 저에게 효과가 있었습니다.

에서Info.plist파일 변경했습니다.

<key>FirebaseAppDelegateProxyEnabled</key>
<false/>

이 속에

<key>FirebaseAppDelegateProxyEnabled</key>
<string>NO</string>

동일한 문제가 발생하여 데이터베이스에 다시 연결했을 때 해결되었습니다. 모든 토큰이 활성화되어 있고 사용 중인지 확인하고 사용되지 않은 토큰을 한 번 삭제하거나 업데이트합니다.

언급URL : https://stackoverflow.com/questions/56216887/requested-entity-was-not-found-when-trying-to-send-a-push-notification-using-fir

반응형