我已经在我的项目中成功实施了 FCM。
是否有可能推只能从火力地堡控制台数据消息。
push-notification firebase firebase-cloud-messaging firebase-notifications
我正在订阅一个主题并使用 Firebase 控制台/云消息传递推送通知;在 Android 上,一切正常。在 iOS 上,当应用程序处于前台/后台/终止(配置文件模式)时,我会在通知中心收到通知
问题: iOS 应用程序图标上没有出现徽章。
我一直在检查不同的文章和质量保证,但仍然没有解决方案。任何可以帮助我进行更多调查的线索或想法都可能解决这个问题,我们将不胜感激。
已尝试 >在调试和配置文件模式下运行,使用配备 iOS 15 和 iPhone Xs 的 iPhone 12 pro
我也尝试过flutter_app_badger仍然没有得到任何徽章计数。
在我的main档案中;
Future<void> _messageHandler(RemoteMessage message) async {
print('background message ${message.notification!.body}');
}
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp(
options: DefaultFirebaseOptions.currentPlatform,
).then((value) {
FirebaseMessaging.onBackgroundMessage(_messageHandler);
});
runApp(MyApp());
}
Run Code Online (Sandbox Code Playgroud)
在initState我的应用程序的第一个屏幕中;
@override
void initState() {
super.initState();
PushNotify().init(context);
messaging = FirebaseMessaging.instance;
messaging.subscribeToTopic("messaging");
messaging.setForegroundNotificationPresentationOptions(
alert: true, // Required to display a heads up notification
badge: true,
sound: …Run Code Online (Sandbox Code Playgroud) push-notification ios flutter firebase-cloud-messaging firebase-notifications
我有两个不同的通知。
一个是消息,另一个是其他内容的通知。
我想将通知分开。
例如,当我收到通知消息并点击它时,它会打开聊天室,而另一个则打开另一个活动。
android firebase firebase-cloud-messaging firebase-notifications
我使用 Service Worker 实现了网络推送通知。我使用特定的应用程序服务器密钥收集了用户订阅。假设如果我们更改应用服务器密钥,那么当我们使用“reg.pushManager.getSubscription()”获取订阅时,我们将获得使用旧应用服务器密钥创建的旧订阅信息。如何处理这种情况?如何从用户那里获取新订阅?
我是 iOS 开发新手,当我从 Firebase 控制台向我的应用程序发送新通知时,我正在尝试解决一个问题,但没有声音!
知道的方法是打开我的手机然后我看到通知但是当通知到达时没有声音!
我的代码看起来与 Firebase 预制代码完全一样:
我在我的 plist.info 中添加了:
所需的后台模式:应用程序下载内容以响应推送通知
我想将 Google 云消息和通知添加到我的服务器。
我已将以下角色添加到我的服务帐户,但仍然无法从我的服务器发送消息。
Firebase Cloud Messaging Admin
Run Code Online (Sandbox Code Playgroud)
我更深入地挖掘了一下,发现我们需要获得许可才能使其发挥作用。
cloudmessaging.messages.create
Run Code Online (Sandbox Code Playgroud)
此权限在默认的所有访问帐户中可用,但如果我创建具有特定访问权限的新服务帐户,我在任何地方都找不到此权限。
请大家帮忙!
google-cloud-platform firebase-cloud-messaging firebase-notifications
iOS上使用flutter开发时收不到firebase的通知
我已授予许可并使用邮递员进行测试。
首先,我会得到令牌
Restarted application in 516ms.
flutter: User granted permission
flutter: This token is eWQJLcN1zEQ_rQ79sBqXI6:APA91bHMnuhkPaf8JpcTbLQavxqq5erUIeRTQYPv9NAhsdfasdfasdaDSA0BTXgVb2RseAmUsi5uAa5SDvGWA7wgIcWPP5xDqTyo4s3xEdWkhHoQc77G59GGZptafaxNIW5QG
Run Code Online (Sandbox Code Playgroud)
Secode:当我去postman测试时,我获得了成功
{
"multicast_id": 2305740741419558081,
"success": 1,
"failure": 0,
"canonical_ids": 0,
"results": [
{
"message_id": "0:1654957148235526%2734e82c2734e82c"
}
]
}
Run Code Online (Sandbox Code Playgroud)
但我仍然没有收到任何通知。
哪里有问题?
这是代码。
late int _totalNotifications;
late final FirebaseMessaging _messaging;
PushNotification? _notificationInfo;
void requestAndRegisterNotification() async {
await Firebase.initializeApp();
_messaging = FirebaseMessaging.instance;
FirebaseMessaging.onBackgroundMessage(_firebaseMessageingBackgroundHandler);
NotificationSettings settings = await _messaging.requestPermission(
alert: true,
badge: true,
provisional: false,
sound: true,
);
if (settings.authorizationStatus == AuthorizationStatus.authorized) {
print('User granted permission');
String? token …Run Code Online (Sandbox Code Playgroud) firebase flutter firebase-notifications flutter-notification
在我的谷歌搜索中,我们只能从FCM控制台向所有用户发送通知.目前REST API中不支持此功能.
但是我们可以在REST API中指定一个主题,并且订阅该主题的任何人都将获得通知.
对单个主题的用户数有任何限制.如果10k用户订阅该主题并且REST API选择该主题来发送通知,该怎么办?FCM会向所有10k用户发送通知吗?
我问这个是因为当我尝试按主题从控制台发送通知时,它显示"<1000估计用户".见下面的截图.
我这样实现:
public static void setPushSetting(Context context, boolean flag) {
if(flag) {
FirebaseInstanceId.getInstance().getToken();
} else {
try {
FirebaseInstanceId.getInstance().deleteInstanceId();
} catch (IOException e) {
RxBus.getInstance().post(new OffPushError());
e.printStackTrace();
}
}
}
Run Code Online (Sandbox Code Playgroud)
昨天,它有效,但今天FirebaseInstanceId.getInstance().deleteInstanceId();总是抛出异常.
在禁用和启用Firebase推送通知时是否还有其他方法可以实施?谢谢你的帮助!
-------更新异常的日志-------------
java.io.IOException: MAIN_THREAD
at com.google.firebase.iid.zzd.zzb(Unknown Source)
at com.google.firebase.iid.FirebaseInstanceId.deleteInstanceId(Unknown Source)
at jp.seesaa.itmama.push.PushUtil.setPushSetting(PushUtil.java:32)
at jp.seesaa.itmama.ui.main.setting.SettingFragment.onSharedPreferenceChanged(SettingFragment.java:66)
at android.app.SharedPreferencesImpl$EditorImpl.notifyListeners(SharedPreferencesImpl.java:476)
at android.app.SharedPreferencesImpl$EditorImpl.apply(SharedPreferencesImpl.java:384)
at android.support.v4.content.EditorCompatGingerbread.apply(EditorCompatGingerbread.java:25)
at android.support.v4.content.SharedPreferencesCompat$EditorCompat$EditorHelperApi9Impl.apply(SharedPreferencesCompat.java:45)
at android.support.v4.content.SharedPreferencesCompat$EditorCompat.apply(SharedPreferencesCompat.java:67)
at android.support.v7.preference.Preference.tryCommit(Preference.java:1353)
at android.support.v7.preference.Preference.persistBoolean(Preference.java:1558)
at android.support.v7.preference.TwoStatePreference.setChecked(TwoStatePreference.java:79)
at android.support.v7.preference.TwoStatePreference.onClick(TwoStatePreference.java:64)
at android.support.v7.preference.Preference.performClick(Preference.java:971)
at android.support.v7.preference.Preference.performClick(Preference.java:957)
at android.support.v7.preference.SwitchPreferenceCompat.performClick(SwitchPreferenceCompat.java:203)
at android.support.v7.preference.Preference$1.onClick(Preference.java:145)
at android.view.View.performClick(View.java:4780)
at android.view.View$PerformClick.run(View.java:19866)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95) …Run Code Online (Sandbox Code Playgroud) android firebase firebase-cloud-messaging firebase-notifications
我只需要向Button内的特定用户发送推送通知即可OnClickListener。userId此特定用户能否获得全部信息?
这是我的Button OnClickListener()代码
richiedi_invito.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
databaseReference = FirebaseDatabase.getInstance().getReference();
databaseReference.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
lista_richieste = (ArrayList) dataSnapshot.child("classi").child(nome).child("lista_richieste").getValue();
verifica_richieste = (String) dataSnapshot.child("classi").child(nome).child("richieste").getValue();
if (!lista_richieste.contains(userID)){
ArrayList lista_invito = new ArrayList();
lista_invito.add(userID);
if (verifica_richieste.equals("null")){
databaseReference.child("classi").child(nome).child("richieste").setValue("not_null");
databaseReference.child("classi").child(nome).child("lista_richieste").setValue(lista_invito);
}
else{
lista_richieste.add(userID);
databaseReference.child("classi").child(nome).child("lista_richieste").setValue(lista_richieste);
}
//invitation code here
Fragment frag_crea_unisciti = new CreaUniscitiFrag();
FragmentManager fragmentManager= getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.fragment_container, frag_crea_unisciti);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
Toast.makeText(getActivity(), "Richiesta di entrare inviata correttamente", …Run Code Online (Sandbox Code Playgroud) java android firebase firebase-authentication firebase-notifications