channel을 생성해주면 됩니다!
soundName, playSound, vibrate 옵션을 설정해주면 되죠
createChannel 로 생성한 채널은 앱 정보에서 확인할 수 있습니다.
export const createFCMChannel = (soundSet: boolean, vibrateSet: boolean) => {
DEFAULT_CHANNEL_ID = uuid.v4().toString();
const options = {
channelId: DEFAULT_CHANNEL_ID, // 채널 ID
channelName: DEFAULT_CHANNEL_NAME, // 채널 이름
channelDescription: "A default channel" + DEFAULT_CHANNEL_ID, // (optional) default: undefined.
importance: 4,
priority: 'high',
playSound: soundSet,
soundName: soundSet ? 'default' : null, // 소리 설정
vibrate: vibrateSet
};
channelOptions[DEFAULT_CHANNEL_ID] = options;
PushNotification.createChannel(options);
}
);
}
고민
동일한 ID로 채널을 생성하고, 삭제하는 방식 vs 매번 다른 ID로 채널을 생성하고, 삭제하는 방식 vs 미리 채널을 모두 생성해놓기매번 다른 ID로 채널을 생성하고, 삭제하는 방식 선택
로컬 스토리지에 저장된 유저 세팅 정보를 fcm이 올때마다 조회하는 것보다 알림 설정을 바꿀 때만 채널을 생성하고 삭제하는 것이 더 작은 리소스를 필요로 하기 때문에 선택했습니다.
또한 고유 ID를 사용할 때 ID가 삭제되고 그 ID로 새 채널을 생성하는 사이에 수신되는 FCM은 채널 ID가 없어 알림받지 못할 수 있기 때문에 새 Id가 생성되고, 이전 알림 채널 Id를 삭제하는 방식을 선택했습니다!
알림 설정을 변경할 때마다 채널이 삭제되고 생성되면 사용자가 알림을 받지 못하는 순간이 발생할 수 있습니다.
채널을 미리 생성해놓을 경우 fcm을 수신하는 시점에 사용자 알림 세팅 정보를 조회하고 이에 맞게 fcm에 대한 적절한 알림이 오도록 조회해야 합니다.