Android Studio通知:如何仅在Firebase数据库中的数据更改时运行通知

在我的Android应用程序中,我使用Firebase实时数据库更新数据更改并显示在屏幕上。Android Studio通知:如何仅在Firebase数据库中的数据更改时运行通知

@Override 

public void onStart() {

super.onStart();

userReference.addValueEventListener(new ValueEventListener() {

@Override

public void onDataChange(DataSnapshot userData) {

userStarredMatchList.clear();

for(DataSnapshot userDataSnapshot : userData.getChildren()) {

notificationFunction();

}

}

@Override

public void onCancelled(DatabaseError databaseError) { /* BLANK */}

});

}

我这样做,这样它就会在参考数据更新时运行。数据更新时将运行notificationFunction(),但问题在于,只要我进入此屏幕并返回到屏幕,它就会运行。

我该如何让它不会在刷新屏幕时运行? (只有在数据更改时才使其运行)。

回答:

尝试将代码移动到onCreate()的某处。

回答:

您可以将功能封装为RxJava Observable,然后使用skip运算符对其进行过滤以跳过第一个事件。

关闭我的头顶:

Observable<DataSnapshot> o = Observable.create(emitter -> { 

userReference.addValueEventListener(new ValueEventListener() {

@Override

public void onDataChange(DataSnapshot userData) {

userStarredMatchList.clear();

for(DataSnapshot userDataSnapshot : userData.getChildren()) {

emitter.onNext(userDataSnapshot);

}

}

@Override

public void onCancelled(DatabaseError databaseError) { /* BLANK */}

});

}).skip(1);

然后,您可以订阅它在onStart(),并显示您的通知。

以上是 Android Studio通知:如何仅在Firebase数据库中的数据更改时运行通知 的全部内容, 来源链接: utcz.com/qa/259567.html

回到顶部