firebaseのauth(token, new Firebase.AuthListener())関数を使用して認証とデータへのアクセスを行ったところ、認証が完了するまでに長い時間 (5 分以上) かかる場合がありました。しかし、この状況は数か月前には起こりませんでした。
https://developer.nest.com/documentation/cloud/firebase-client-librariesからダウンロードした Firebase ライブラリなので、私の firebase ライブラリのバージョンは 1.1.1 です。このような状況になった人はいますか?
authWithCustomToken (...) を使用してauth (...) を置き換えようとしましたが、機能しません。この関数をネストでの認証に使用するにはどうすればよいですか?
そして、ファイアベースがSSLをプロトコルに追加したことがわかりましたが、上記の状況を引き起こしたのはその理由ですか?
https://www.firebase.com/blog/2012-07-27-firebase-now-supports-ssl.htmlから firebase.js をダウンロードしましたが、このファイルを使用して * を作成する方法がわかりません.crt または *.cer ファイル、誰か助けてくれませんか?
/******************************* アップデート ***************** ********************/
以下は、次のようなサンプル コードです。
access_token http リクエスト経由でネストからすでに取得していますが、
String Access_Token_URL = "https://api.home.nest.com/oauth2/access_token";
URL u = new URL(Access_Token_URL);
HttpURLConnection conn = (HttpURLConnection) u.openConnection();
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setRequestMethod("POST");
String cmd = "code="+pincode+"&client_id=" + Client_ID + "&client_secret="+ Client_secret +"&grant_type=authorization_code";
DataOutputStream wr = new DataOutputStream(conn.getOutputStream());
wr.writeBytes(cmd);
wr.flush();
wr.close(); // flush and close
BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
while ((line = reader.readLine()) != null){
//do something
}
reader.close();
JSONObject stock_data = new JSONObject(line);
access_token = stock_data.getString("access_token"); //access_token="c.W6o3HEpUe3a..........";
auth() 関数で access_token を使用し、
String DataBase_URL = "https://developer-api.nest.com";
Firebase myDataBase = new Firebase(DataBase_URL);
myDataBase.auth(access_token, new Firebase.AuthListener(){
@Override
public void onAuthError(FirebaseError arg0) {
// TODO Auto-generated method stub
Log.i(TAG, "AuthErro: " + arg0.getMessage());
//to do something...
}
@Override
public void onAuthRevoked(FirebaseError arg0) {
// TODO Auto-generated method stub
Log.i(TAG, "AuthRevoked: " + arg0.getMessage());
//to do something...
}
@Override
public void onAuthSuccess(Object arg0) {
// TODO Auto-generated method stub
Log.i(TAG, "AuthSuccess " + arg0.toString());
//to do something...
}
});
AuthSuccessメッセージを取得するのに 5 分以上かかりますが、動作は正しいですか? そうでない場合、コードをどのように変更すればよいですか?