Залп дважды сохраняет данные в базе данных. Это мой код. Я добавил setRetryPolicy, но получил тот же результат. Также я использую android: usesCleartextTraffic = "true" в моем манифесте.
public void RegisterInfo() {
Map<String, String> parameters = new HashMap<String, String>();
parameters.put("name_surname",name_surname );
parameters.put("email",email);
JSONObject jsonObject=new JSONObject(parameters);
final JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST,registerURL , jsonObject, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) { }
}) { };
jsonObjectRequest.setRetryPolicy(new DefaultRetryPolicy(
30000,
DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
requestQueue = Volley.newRequestQueue(getApplicationContext());
requestQueue.add(jsonObjectRequest);
}
Я вызвал эту функцию внутри функции результата знака Google;
private void handleSignInResult(Task<GoogleSignInAccount> completedTask) {
try {
GoogleSignInAccount account = completedTask.getResult(ApiException.class);
Toast.makeText(getApplicationContext(), "Login Success", Toast.LENGTH_LONG).show();
GoogleSignInAccount acct = GoogleSignIn.getLastSignedInAccount(LoginActivity.this);
if (acct != null) {
name_surname = acct.getDisplayName();
email = acct.getEmail();
RegisterInfo();
}
} catch (ApiException e) {
// The ApiException status code indicates the detailed failure reason.
// Please refer to the GoogleSignInStatusCodes class reference for more information.
Toast.makeText(getApplicationContext(), "signInResult:failed code=" + e.getStatusCode(), Toast.LENGTH_LONG).show();
}
}