Android-аутентификация с модификацией данных Json - PullRequest
0 голосов
/ 27 июня 2018

У меня есть Json данные на firebase, как это;

[{"Password":123,"UserName":"User1"},{"Password":34,"UserName":"User2"}]

Я хочу, чтобы аутентификация зависела от этих данных, но проблема в том, что я могу публиковать только данные Json, например;

пользователь введет новые данные UserName = User3 и Password = 44; мои Json данные будут

[{"Password":123,"UserName":"User1"},{"Password":34,"UserName":"User2"},{"Password":44,"UserName":"User3"}]

Это не моя цель, я хочу проверить данные и вернуть «верно или нет» в моих исходных данных.

Проблема в том, что; Я хочу проверить доступность данных при отправке имени пользователя и пароля. Если существует ответ возврата "успех", если не ответ "ошибка".

Мой класс пользователя таков;

public class User {

@SerializedName("UserName")
public String UserName;

@SerializedName("Password")
public String Password;

public User(String UserName, String Password) {
    this.UserName = UserName;
    this.Password = Password;
 }
}

Класс результата входа в систему таков;

public class LogonResult {
@SerializedName("HasErrors")
public boolean hasError;

@SerializedName("Message")
public String message;

@SerializedName("LoggedUser")
public User loggedUser;
}

Модифицированный сервис, подобный этому;

public interface CensService {

@POST("/User.json")
Call<LogonResult> login(@Body User userInfo);
}

А вот основной метод;

  final String user = usernameInput.getText().toString().trim();
  final String pass = passwordInput.getText().toString().trim();
  User usr = new User(user,pass);
  final CensClient client = new CensClient();
  final CensService apiService = client.getClient(LoginActivity.this).create(CensService.class);
        Call<LogonResult> userCall = apiService.login(usr);
        Log.w("request",userCall.request().toString());

        userCall.enqueue(new Callback<LogonResult>() {

            @Override
            public void onResponse(Call<LogonResult> call, Response<LogonResult> response) {
                if(response.isSuccessful()) {
                    //(response.body().toString());
                }else{
                    //(response.message());
                }
            }

            @Override
            public void onFailure(Call<LogonResult> call, Throwable t) {
               //
            }
        });
...