我想将Firebase reg令牌存储在SQL数据库中,令牌出现在日志中,但不会发送到数据库。
这是我的“FirebaseInstanceIdService”类:
public class FirebaseInstanceIDService extends FirebaseInstanceIdService {
@Override
public void onTokenRefresh() {
String token = FirebaseInstanceId.getInstance().getToken();
Log.d("REG_TOKEN",token);
sendToken(token);
}
private void sendToken(String token) {
OkHttpClient client = new OkHttpClient();
RequestBody body = new FormBody.Builder()
.add("Token",token)
.build();
Request request = new Request.Builder()
.url("http://192.168.1.6/fcm/addtoken.php")
.post(body)
.build();
try {
client.newCall(request).execute();
} catch (IOException e) {
e.printStackTrace();
}
}
}
这是PHP脚本:
<?php
if (isset($_POST["Token"])) {
$token=$_POST["Token"];
$conn = mysqli_connect("localhost","root","","fcm");
$q="INSERT INTO users (Token) Values ( '$token') ON DUPLICATE KEY UPDATE Token = '$token';";
mysqli_query($conn,$q) or die(mysqli_error($conn));
mysqli_close($conn);
}
感谢任何帮助。
答案 0 :(得分:0)
您的代码看起来很好。您没有收到任何结果的原因是因为您只在sendToken()
中拨打onTokenRefresh()
。此方法仅由specific scenarios触发,可能无法满足。
尝试在MainActivity的sendToken()
方法中调用onCreate()
,看看是否有令牌发送到您的服务器。