2017-03-05 12 views
0

Firebase regトークンをSQLデータベースに格納したい場合、トークンはログに表示されますが、データベースには送信されません。FCM登録トークンを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

ブラウザでPHPスクリプトを最初に確認しましたか? –

答えて

0

コードは正常です。結果が表示されないのは、にsendToken()としかコールしていないためです。このメソッドは、specific scenariosによってのみトリガーされますが、これはおそらく満たされません。

MainActivityのonCreate()メソッドでsendToken()を呼び出して、トークンがサーバーに送信されているかどうかを確認してください。

関連する問題