这是基本用例:
FirebaseApp firebaseApp = ...;
FirebaseMessaging firebaseMessaging = FirebaseMessaging.getInstance(firebaseApp);
Message message = Message.builder()....build();
String messageId = firebaseMessaging.send(message);
FirebaseMessaging
有一个承诺方法:
sendAsync()
. 此方法返回
ApiFuture<String>
而不是简单的
String
get(timeout, timeUnit):String
我的最终代码如下所示:
try {
FirebaseApp firebaseApp = ...;
FirebaseMessaging firebaseMessaging = FirebaseMessaging.getInstance(firebaseApp);
Message message = Message.builder()....build();
ApiFuture<String> apiFuture = firebaseMessaging.sendAsync(message);
// waiting for the response max. 5 secs
String messageId = apiFuture.get(5000, TimeUnit.MILLISECONDS);
// everything is fine here
} catch (Throwable t) {
// java.util.concurent.TimeoutException appears
}