我正在开发一个Android应用程序,其中有跟随/取消关注用户的此选项。每当有人跟踪他时,FirebaseDatabase
中的计数器会增加1,当有人取消他时,计数器会减少1。
我试图在每次有人跟踪他时通过启动服务来通知用户,只要他离开应用并在Service
中编写代码。
以下是服务onCreate()
中的代码:
firebaseDatabaseFollowers.child("***").child("***").child("followers").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
b = sharedPref2.getBoolean(SettingsActivity.KEY_PREF_NOTIF_FOLLOW, true);
Toast.makeText(getBaseContext(), "b: " + String.valueOf(b), Toast.LENGTH_SHORT).show();
if (dataSnapshot.getValue() != null) {
if (String.valueOf(b).equals("true")) {
final int m = (int) ((new Date().getTime() / 1000L) % Integer.MAX_VALUE);
Intent notificationIntent = new Intent(getBaseContext(), NotificationARBroadcastReceiver.class);
notificationIntent.putExtra(NotificationARBroadcastReceiver.NOTIFICATION, getNotificationService());
PendingIntent pendingIntent = PendingIntent.getBroadcast(getBaseContext(), m, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, 0, pendingIntent);
}
} else {
Toast.makeText(getBaseContext(), "database is null", Toast.LENGTH_SHORT).show();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
通知部分工作正常。唯一的问题是,即使有人取消了用户并且我也不希望这种情况发生,也会发送通知。
那么,有没有办法知道如果FirebaseDatabase
中的计数器增加或减少,以便我可以相应地通知?
请告诉我。
答案 0 :(得分:1)
我会在您的应用中存储一个全局变量,该变量包含用户当前拥有的关注者数量。当数据库发送新信息时,您可以使用if new number>将其与您保存的号码进行比较。或者<比保存的号码。然而,这可能是有问题的,如果用户离线并在之后重新上线,比如1个用户取消关注,另外2个跟随。在这种情况下,用户只会获得+1粉丝通知。我可能会建议发送跟随用户的用户名,就像Instagram一样。例如," John Smith跟着你!"或者"詹姆斯史密斯取消了你!"。