小编hca*_*ams的帖子

调用 FirebaseInstanceId.getToken 的行为

我有两种类型的问题FirebaseInstanceId.getToken(String authorizedEntity, String scope),一种是多次调用此方法,另一种是调用此方法是否触发FirebaseMessagingService.onNewToken(String token)

1) 多次调用:根据本文档,一个人会调用getToken(String authorizedEntity, String scope)多次,每次使用不同的发件人 ID,以便能够接收来自多个发件人的消息。我的问题是,每个调用都会返回不同的令牌,还是每个调用都会返回相同的令牌,但现在该令牌也适用于多个发件人?如果我们使用之前使用过的发送者 ID 调用此方法,那么会返回现有令牌还是生成新令牌?

所以,假设我有这个操作顺序

  1. 调用getToken("senderId1", "FCM")并获取tokenA
  2. 称呼getToken("senderId2", "FCM")。我会得到A不同的代币吗B
  3. 称呼getToken("senderId2", "FCM")。我会得到A,,B还是另一个不同的C

2)会onNewToken被召唤吗?本文档指出,如果令牌发生更改,将调用该方法。那么这是否意味着 ifgetToken返回一个与之前不同的令牌 thenonNewToken也会被调用?如果我们要getToken多次调用以允许从不同的发送者接收,并且每次调用返回不同的令牌,那么onNewToken将继续被调用。

由于建议我们在onNewToken触发时更新服务器,因此我想了解预期的行为并避免在每次调用时更新服务器onNewToken

android firebase firebase-cloud-messaging

5
推荐指数
1
解决办法
2049
查看次数

为什么不能将ac指针视为数组?

查找数组的大小而不使用C中sizeof的问题中,提问者通过获取地址然后指定数组索引1来处理类似于int数组的int数组:

int arr[100];
printf ("%d\n", (&arr)[1] - arr);
Run Code Online (Sandbox Code Playgroud)

该值最终成为之后100个元素的"下一个"数组中第一个元素的地址arr.当我尝试这个类似的代码时,似乎没有做同样的事情:

int *y = NULL;
printf("y = %d\n", y);
printf("(&y)[0] = %d\n", (&y)[0]);
printf("(&y)[1] = %d\n", (&y)[1]);
Run Code Online (Sandbox Code Playgroud)

我最终得到:

y = 1552652636
(&y)[0] = 1552652636
(&y)[1] = 0
Run Code Online (Sandbox Code Playgroud)

为什么不是(&y)[1]指向int的"next"指针的地址y

c arrays

1
推荐指数
1
解决办法
184
查看次数

标签 统计

android ×1

arrays ×1

c ×1

firebase ×1

firebase-cloud-messaging ×1