私のアプリで通知を提供するためにFCMを使用しています。すべてうまくいっていましたが、Android Studio(GooglePlayからではありません)を使用してアプリケーションをインストールすると、最初にトークンがnullになることがわかりました。私は私のアプリケーションを閉じて、それを再起動すると、トークンはもはやnullではありません。この問題の原因とその回避方法を教えてください。Android:最初の実行時にFirebaseトークンがnullです
InstanceIDService:MainActivityで
public class InstanceIDService extends FirebaseInstanceIdService {
@Override
public void onTokenRefresh() {
String token = FirebaseInstanceId.getInstance().getToken();
registerToken(token);
}
private void registerToken(String token) {
OkHttpClient client = new OkHttpClient();
RequestBody body = new FormBody.Builder()
.add("Token",token)
.build();
Request request = new Request.Builder()
.url("url_to_registration_script")
.post(body)
.build();
try {
client.newCall(request).execute();
} catch (IOException e) {
e.printStackTrace();
}
}
}
:
<?php
if (isset($_POST["Token"])) {
$_uv_Token=$_POST["Token"];
$conn = mysqli_connect("localhost","user","pass","db") or die("Error connecting");
$q="INSERT INTO users (Token) VALUES ('$_uv_Token') "
." ON DUPLICATE KEY UPDATE Token = '$_uv_Token';";
mysqli_query($conn,$q) or die(mysqli_error($conn));
mysqli_close($conn);
}
?>
私の疑問は、毎回これをFirebaseMessaging.getInstance()。subscribeToTopic( "topic");トークンインスタンスを取得する前に – Ruban