[@nativescript/firebase-messaging-core][iOS] Notification token is regenerated after app is killed
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Facilidade para iniciantes
- 25/100
- Tipo de issue
- Bug
- Clareza
- Precisa de esclarecimento
- Status de atividade
- Estagnada
- Stack de tecnologia
- ios, typescript
- Domínio
- mobile
Direção de pesquisa
Comece em main.ts e acompanhe firebase().messaging().registerDeviceForRemoteMessages() e getToken() durante a inicialização. Reproduza o primeiro e os lançamentos subsequentes no iOS, verificando as versões dos pacotes em package.json e os dois resultados dos tokens. Está concluído quando as notificações funcionarem no primeiro lançamento e getToken() permanecer estável após o encerramento e a reabertura do aplicativo.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
There is a weird behavior with our app about the notification token in iOS only.
We have search everywhere to find for a fix for this issue but we didn't find anything.
When I launch the first time the app, I get the notification token with firebase().messaging().getToken(), then we save the token in our user database and send notification from our server.
The first time the app is launch, the notification are not received, it only works after killing the app and relaunch it again.
But that's not it!
After the second launch, if I kill the app and then launch it again, the token change!!
firebase().messaging().getToken() is called twice, the first one return the old token and the second one return the new token
According to firebase documentation, the token only change if the app is uninstalled or data is reset which is not the case
package.json:
{
"name": "tina",
"main": "./src/main.ts",
"version": "1.0.0",
"private": true,
"dependencies": {
"@angular/animations": "~14.3.0",
"@angular/common": "~14.3.0",
"@angular/compiler": "~14.3.0",
"@angular/core": "~14.3.0",
"@angular/forms": "~14.3.0",
"@angular/platform-browser": "~14.3.0",
"@angular/platform-browser-dynamic": "~14.3.0",
"@angular/router": "~14.3.0",
"@nativescript/angular": "^14.2.8",
"@nativescript/camera": "^5.1.1",
"@nativescript/core": "~8.5.0",
"@nativescript/firebase-core": "^2.3.4",
"@nativescript/firebase-messaging": "^2.3.4",
"@nativescript/firebase-messaging-core": "^2.3.4",
"@nativescript/geolocation": "^8.3.1",
"@nativescript/imagepicker": "^3.1.1",
"@nativescript/local-notifications": "^6.1.1",
"@nativescript/mlkit-barcode-scanning": "^2.1.0",
"@nativescript/mlkit-core": "^2.1.0",
"@nativescript/theme": "~3.0.2",
"nativescript-webview-interface": "^1.4.5",
"rxjs": "~7.5.0",
"zone.js": "~0.11.5"
},
"devDependencies": {
"@angular-devkit/build-angular": "^14.2.13",
"@angular/compiler-cli": "~14.3.0",
"@nativescript/android": "8.5.0",
"@nativescript/ios": "8.6.4",
"@nativescript/types": "~8.5.0",
"@nativescript/webpack": "5.0.14",
"@ngtools/webpack": "^14.2.13",
"@types/node": "^14.18.63",
"typescript": "^4.6.2"
}
}
main.ts
import { platformNativeScript, registerElement, runNativeScriptAngularApp } from '@nativescript/angular';
import '@nativescript/firebase-messaging'
import { AppModule } from './app/app.module';
import { firebase } from '@nativescript/firebase-core';
import '@nativescript/firebase-messaging';
import { AuthorizationStatus } from '@nativescript/firebase-messaging';
import { setString } from '@nativescript/core/application-settings';
import { requestPermissions } from '@nativescript/camera';
import * as geolocation from '@nativescript/geolocation';
import { isIOS } from "@nativescript/core";
import { MLKitView } from '@nativescript/mlkit-core';
runNativeScriptAngularApp({
appModuleBootstrap: () => platformNativeScript().bootstrapModule(AppModule),
});
try {
registerElement('MLKitView', () => MLKitView);
firebase().initializeApp().then(
() => {
firebase().messaging().requestPermission({
ios: {
alert: true,
},
}).then((p) => {
if(p == AuthorizationStatus.AUTHORIZED || p == AuthorizationStatus.PROVISIONAL){
firebase().messaging().registerDeviceForRemoteMessages();
firebase().messaging().showNotificationsWhenInForeground = true;
firebase().messaging().getToken().then(token => {
setString("notificationToken", token);
})
}
}).finally(() => {
if(isIOS){
requestPermissions().finally(() => { // for camera
geolocation.isEnabled().then((isEnabled) => { //for gps
if(!isEnabled){
geolocation.enableLocationRequest(true).then(() => {
});
}
})
})
}
})
console.log("firebase.init done");
},
error => {
console.log(`firebase.init error: ${error}`);
}
);
}
catch (err) {
console.log("err in try and catch " + err);
}
Let me know if you need something else to provide.
- Linguagem predominante
- TypeScript
- Estrelas
- 62
- Forks
- 53
- Merge médio
- 8d 4h
- PRs com merge (30d)
- 2
Guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de NativeScript/firebase
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 48/100
NativeScript/firebase#292 ·
-
Can't install package Aberta
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 35/100
NativeScript/firebase#289 ·
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 35/100
NativeScript/firebase#288 · 4 reações ·
-
bug ios
NativeScript/firebase#287 · 1 responsável ·
-
Uh-Oh Shazam Aberta
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 20/100
NativeScript/firebase#286 ·
Todas as issues de NativeScript/firebase
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
vercel-labs/just-bash#464 ·
-
looksLikeSlug() is ASCII-only, so non-Latin entity slugs (e.g. Korean) skip exact match and collapse Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 90/100
TanStack/tanstack.com#1293 ·