我开发了一个需要显示每日步数的应用程序.为此,我使用了Google Fit SDK中提供的API.
一切似乎都正常,但我得到的步数与Google Fit官方应用程序中显示的步数不匹配.
例如,当Google Fit App显示2367步时,我会获得2308步.
是否有一个原因?有没有人有同样的问题?有人有线索吗?
我使用FCM将通知推送给我的应用用户.我还使用Firebase Analytics获取有关应用行为的一些反馈.
我有一个应用程序,它在启动默认活动时订阅特定主题.所以基本上每个至少启动一次应用程序的用户都是主题订阅者.从firebase分析,我可以在过去30天的事件日志中看到21374 first_open.我还可以在"活动用户"仪表板中看到此金额.
所以基本上,至少有21k用户可用于该主题.
我昨天向这个话题发了通知.这是一个数据通知,因此应用程序的后台/前台/未启动状态没有问题.
在onMessageReceived方法中,我在firebase分析上记录一个事件.显然,只有2,9K用户确实收到了通知.
什么可以解释用户数量和通知有效推送给用户之间的这种差异?
一些可以链接的元素:
该应用程序3天前在商店更新.因此,用户可能尚未启动应用程序的新版本.但更新不应删除先前版本已订阅的主题.我还运行了一些测试来验证这一点,并且更新不会删除先前版本订阅的主题(除非首先卸载应用程序).所以这不应该是这个问题的原因.
该应用已使用新版GooglePlayServices/Firebase软件包进行更新(从9.2到10.0.1)是否会删除旧版GooglePlayServices/Firebase软件包订阅的所有主题?
是否还有其他原因会导致订阅者数量和通知传递数量之间出现这种差异?
@Bob Snyder
以下是我检查Google Play服务版本的方法:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
GoogleApiAvailability googleApiAvailability = GoogleApiAvailability.getInstance();
int success = googleApiAvailability.isGooglePlayServicesAvailable(this);
if(success != ConnectionResult.SUCCESS) {
googleApiAvailability.makeGooglePlayServicesAvailable(this);
}
FirebaseMessaging.getInstance().subscribeToTopic("mytopic");
Run Code Online (Sandbox Code Playgroud)
所使用的Google Play服务版本与环境移动+佩戴有关,很多用户在更新其GooglePlayService版本时遇到一些困难,所以我通常会保留比最新版本更低的版本,并且只在必要时才更新.
@Jorgesys
我的FirebaseMessagingService实际上非常简单:
public class MyFirebaseMessagingService extends FirebaseMessagingService {
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
Logger.d("From: " + remoteMessage.getFrom());
MyFirebaseAnalytics mAnalytics = new MyFirebaseAnalytics(this);
mAnalytics.logEvent("notif", "reception");
Map<String, String> data = remoteMessage.getData();
// Check if …Run Code Online (Sandbox Code Playgroud)