当Android中Firebase数据库中的数据发生更改时将数据发送到应用程序[关闭]
Posted
技术标签:
【中文标题】当Android中Firebase数据库中的数据发生更改时将数据发送到应用程序[关闭]【英文标题】:Send data to App when data changed in Firebase Database in Android [closed] 【发布时间】:2019-12-25 07:40:22 【问题描述】:我正在构建一个应用程序,我希望在 Firebase 实时数据库中的数据发生更改时为用户生成推送通知。我想知道使用 Firebase 云消息传递是否适合它,并且想了解如何使用 FCM 将数据发送到应用程序。
【问题讨论】:
【参考方案1】:这是我写的script,用于在此处触发更改时发送通知
【讨论】:
这个问题是针对 android 的。 是的,但是有些事情你不能只打一个结。 或者错误的结:P 问题Push Notification for the user when a data has been changed in the Firebase Realtime Database
是脚本的内容。那么它是怎么打错结的呢?也许您可能想查看 repo,它实际上是针对 android 应用程序的。
完全没有冒犯。这个问题非常明确地表明需要针对 Android 的解决方案。【参考方案2】:
你需要使用值监听器来监听和发送数据变化的通知,例如:
ValueEventListener postListener = new ValueEventListener()
@Override
public void onDataChange(DataSnapshot dataSnapshot)
// Send notification here
FirebaseFunctions.getInstance()
.getHttpsCallable("sendNotification")
.call(notificationData)
.continueWith(new Continuation<HttpsCallableResult, String>()
@Override
public String then(@NonNull Task<HttpsCallableResult> task) throws Exception
return null;
);
@Override
public void onCancelled(DatabaseError databaseError)
// Getting Post failed, log a message
Log.w(TAG, "loadPost:onCancelled", databaseError.toException());
// ...
;
mPostReference.addValueEventListener(postListener);
在函数中:
exports.sendNotification = functions.https.onCall((data, context) =>
// I am using FCM Topic to send notification to users.
var fcmTopic = data.fcmTopic;
console.log(data);
var payload =
data:
MESSAGE_TAG: "NEW_NOTIF",
MESSAGE_TITLE: "Test!",
MESSAGE_TEXT: "Test."
,
topic: fcmTopic
;
var options =
priority: "high"
;
admin.messaging().send(payload)
.then(() =>
console.log("success");
return null;
)
.catch(error =>
console.log(error);
);
);
更多信息:https://firebase.google.com/docs/database/android/read-and-write#listen_for_value_events
【讨论】:
这是一个 android 应用 :) 不是 node-js,但是解决方案是正确的 应该使用数据库触发器 如何触发正确的用户?意味着我也必须检查一下。 是的,您必须跟踪注册令牌或主题,以便用户发送通知/ 我添加了一个示例 firebase 函数来发送通知。以上是关于当Android中Firebase数据库中的数据发生更改时将数据发送到应用程序[关闭]的主要内容,如果未能解决你的问题,请参考以下文章
关于使用android studio在firebase实时数据库中的uid下创建随机密钥
已实现 Firebase 实时数据库存储的 Android 应用中的多个应用内产品
从Android中的firebase下载多个文件时如何管理内存