从何处、何时检索令牌以及何时可用?
是同步调用Firebase服务器吗?如果我在应用程序生命周期中太早调用它,它可能还没有被填充吗?
我在 Dialogflow 履行中使用 firebase admin 版本 6.0.0 发送 fcm 通知。
admin.messaging().send({
"message": {
"notification": {
"title": "Portugal vs. Denmark",
"body": "great match!"
},
"token": user_info.device_id
}
})
.then((response) => {
// Response is a message ID string.
console.log('Successfully sent message:', response);
})
.catch((error) => {
console.log('Error sending message:', error);
});
Run Code Online (Sandbox Code Playgroud)
这是我收到的错误
Error: Exactly one of topic, token or condition is required
at FirebaseMessagingError.Error (native)
at FirebaseMessagingError.FirebaseError [as constructor] (/user_code/node_modules/firebase-admin/lib/utils/error.js:39:28)
at FirebaseMessagingError.PrefixedFirebaseError [as constructor] (/user_code/node_modules/firebase-admin/lib/utils/error.js:85:28)
at new FirebaseMessagingError (/user_code/node_modules/firebase-admin/lib/utils/error.js:241:16)
at validateMessage …Run Code Online (Sandbox Code Playgroud) 我正在寻找了解 Firebase FCM API 的范围。我的公司要求我实施自定义 FCM 管理面板。假设,管理员可以使用该面板查看默认 Firebase FCM 发送的所有推送通知、向单个设备发送推送通知或订阅预定义主题。
在构建用于向单个设备发送推送通知的列表视图和基本表单后,我将构建一个后端服务器来自动触发 Firebase API 端点来推送通知。但是,我在 Firebase API 方面遇到了一些麻烦。
编辑:我构建了一个原型 lambda 函数,它可以根据 Firebase 中存储的规则查询数据库来发送自动推送通知。该功能计划每天运行。通过下面的这个函数,我调用消息传递对象
private void sentAutomatedMessages(List<String> tokens, CardAbandonmentRule rule) {
for (String token : tokens) {
//Create Messaging object for every user that fits in this user
Messaging msgHandler = new Messaging(rule.getTitle(), rule.getMessage(), token);
try {
msgHandler.handleSingleDevicePush();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Run Code Online (Sandbox Code Playgroud)
类定义和发送推送通知的方法=> …
javascript firebase google-cloud-messaging firebase-cloud-messaging firebase-admin
我正在使用 firebase 云消息传递来接收 android 中的通知。每个通知应导航到不同的活动。我收到多个通知,但当我单击多个通知中的任何一个时,它会导航到正确的活动,但其余通知会重定向到默认页面
这是我的代码
public class MyFirebaseMessagingService extends FirebaseMessagingService {
private static final String TAG = "MyFirebaseMsgService";
FirebaseFirestore db = FirebaseFirestore.getInstance();
FirebaseAuth mAuth;
String flag = "0";
String cid = "0",status11,opdat;
int ff;
String docid = "0";
Date d = new Date();
//deyaPAy
String docId;
String FirstName = "0";
String Amount = "0";
String Flag = "0";
String status = "0";
String SenderID1 = "0" ;
String ReceiverId1 = "0" ;
String ReceiverPhoneNumberst ="0";
String SenderAutoId ="0";
String …Run Code Online (Sandbox Code Playgroud) 我构建了一个原型 lambda 函数,它可以根据 Firebase 中存储的规则查询数据库来发送自动推送通知。该功能计划每天运行。通过下面的这个函数,我调用消息传递对象
private void sentAutomatedMessages(List<String> tokens, CardAbandonmentRule rule) {
for (String token : tokens) {
//Create Messaging object for every user that fits in this user
Messaging msgHandler = new Messaging(rule.getTitle(), rule.getMessage(), token);
try {
msgHandler.handleSingleDevicePush();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Run Code Online (Sandbox Code Playgroud)
类定义和发送推送通知的方法 =>
public class Messaging {
private static final String PROJECT_ID = "<project_id>";
private static final String BASE_URL = "https://fcm.googleapis.com";
private static final String FCM_SEND_ENDPOINT = "/v1/projects/" + PROJECT_ID + "/messages:send";
private …Run Code Online (Sandbox Code Playgroud) 我在应用程序中的所有模型上使用Json_serialized(它通过命令行自动为我的模型提供 fromJson 和 toJson 方法)。
每个(反)序列化都可以完美运行,但不能与 firebase_messaging json 一起运行。
这就是我所做的:
onMessage: (Map<String, dynamic> msg) {
FCMNotification fcmNotification = FCMNotification.fromJson(msg);
}
Run Code Online (Sandbox Code Playgroud)
我总是有这种错误:
类型“String”不是类型转换中类型“Map <dynamic,dynamic>”的子类型
或者
'_InternalLinkedHashMap<dynamic,dynamic>'不是类型'Map<String,dynamic>'的子类型
我在github上看到过这种问题,但是我没有找到适合我的解决方案。请帮助
我使用自己的服务器,使用FCM向ios设备推送通知,推送通知成功,我还使用Realm数据库系统帮我存储fcm推送通知,但是只有以下两种情况存储才会成功。情况1:当应用程序运行时。
情况2:当您点击推送横幅通知时,应用程序被杀死或在后台运行。
但这不是我的主要意图。我知道当应用程序被终止时,我无法处理推送通知,因此我希望能够在用户打开应用程序时存储推送通知。
抱歉,我的英语不好。如果有不清楚的地方,请告诉我。
境界级
class Order: Object {
@objc dynamic var id = UUID().uuidString
@objc dynamic var name = ""
@objc dynamic var amount = ""
@objc dynamic var createDate = Date()
override static func primaryKey() -> String? {
return "id"
}
let realm = try! Realm()
let order: Order = Order()
Run Code Online (Sandbox Code Playgroud)
AppDelegate.swift(当应用程序运行时存储 fcm 消息)
func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
let userInfo = notification.request.content.userInfo //
print("userInfo: \(userInfo)")
guard
let aps …Run Code Online (Sandbox Code Playgroud) I'm developing the push notifications for web app with Firebase Cloud Messaging.
After the first run I got request notification promt because of this code:
const messaging = firebase.messaging();
messaging
.requestPermission()
..........
Run Code Online (Sandbox Code Playgroud)
我已经授予了权限,但是现在当我访问此页面时,我没有看到权限请求提示,因为我已经在第一次运行时授予了权限。如何取消订阅我的设备以再次查看权限请求?
我目前正在项目中设置 Firebase (FCM),当我运行经过 R8 混淆的应用程序时遇到问题,Firebase 服务 (FirebaseMessagingService) 不再工作。有人遇到过同样的问题吗?有什么解决办法吗?
UPD:最后我通过降级到 FCM 修复了它
com.google.firebase:firebase-messaging:15.0.0
Run Code Online (Sandbox Code Playgroud)
现在使用了一些已弃用的类,但它仍然有效。
UPD2:在使用最新版本的库运行混淆的应用程序时,我还注意到日志中的警告:
W/FA: Failed to retrieve Firebase Instance Id
Run Code Online (Sandbox Code Playgroud)
这很可能是问题的根源。
我正在尝试使用 AWS SNS 和 FCM 向我的 Android 应用程序发送推送通知。
AWS文档说:
但在我的 Amazon SNS 页面上,我在左侧导航窗格中看不到“移动”。
我错过了什么吗?
我在某处读到英国不支持 Amazon SNS 到手机。这是真的吗?
android amazon-web-services amazon-sns firebase-cloud-messaging
firebase ×7
android ×4
javascript ×3
amazon-sns ×1
android-r8 ×1
flutter ×1
ios ×1
java ×1
json ×1
permissions ×1
swift ×1