假设我有一个 Android 应用程序,它只是使用从随机 REST API 获得的内容构建一个 ListView。
现在想象一下,当 API 上有新内容可用时,我需要发送推送通知。最简单的方法是什么?
我对 Android 上的推送通知过程有点困惑。我查看了 Firebase,但我不知道我是否需要在 Firebase 上有一个数据库来存储结果,因为新内容可通过 API 获得,然后触发数据库更新通知,或者如果我不需要需要一个数据库等。
正如你所看到的,我很不清楚,所以非常感谢任何帮助。谢谢 !
我正在我的应用程序上发送通知,并且正在使用 firestore。我的问题是我想在snapshotlistener检测到数据库中新添加的数据时向用户发送通知但是当我打开应用程序时,即使我没有添加新数据,它也会立即显示现有通知。我需要一些条件,我只能获取新添加的数据,或者如果我的数据库数据中缺少一些需要克服这个问题的东西。下面是我的数据库结构。
db.collection("Buyers")
.document(userID)
.collection("Notifications")
.addSnapshotListener(new EventListener<QuerySnapshot>() {
@Override
public void onEvent(@Nullable QuerySnapshot snapshots, @Nullable FirebaseFirestoreException e) {
if (e != null) {
Log.e(LOG_DB, e.toString());
return;
}
for (DocumentChange dc : snapshots.getDocumentChanges()) {
if (dc.getType() == DocumentChange.Type.ADDED) {
String title = dc.getDocument().getData().get("notificationTitle").toString();
String body = dc.getDocument().getData().get("notificationBody").toString();
//Method to set Notifications
getNotification(title, body);
}
}
}
});
Run Code Online (Sandbox Code Playgroud) 我已经RecyclerView用FirebaseUI-Android库实现了。
RecyclerView一旦使用,我的实时数据就会发生变化FirebaseRecyclerAdapter
在Collection中,数据文档的字段类型为Boolean,Integer,Reference。
我想使用该参考获取数据populateViewHolder有addSnapshotListener。
帮我!这是我的代码:
FirebaseRecyclerAdapter<Conv, ConvViewHolder> firebaseConvAdapter = new FirebaseRecyclerAdapter<Conv, ConvViewHolder>(
Conv.class,
R.layout.users_single_layout,
ConvViewHolder.class,
conversationQuery
) {
@Override
protected void populateViewHolder(final ConvViewHolder convViewHolder, final Conv conv, int i) {
final String list_user_id = getRef(i).getKey();
final DocumentReference docRef = db.collection("cities").document(list_user_id);
docRef.addSnapshotListener(new EventListener<DocumentSnapshot>() {
@Override
public void onEvent(@Nullable DocumentSnapshot snapshot,
@Nullable FirebaseFirestoreException e) {
if (e != null) {
Log.w(TAG, "Listen failed.", e);
return;
}
if (snapshot != …Run Code Online (Sandbox Code Playgroud)