Я искал несколько решений здесь, но не смог найти ничего конкретного в моей ситуации, и поэтому публикую здесь вопрос, пока продолжаю искать решение.Я все еще новичок в Firestore, и их руководство / документы до сих пор неясны.
В моем телефонном приложении есть система, позволяющая пользователю вводить имя.Это имя должно использоваться для обхода базы данных Firestore, и если имя существует как поле для одного из пользователей, метод должен вернуть логическое значение true
.
. Этот запрос должен быть вызванкнопка «Продолжить», которая находится в моей основной деятельности, как показано ниже:
//Authenticate user and proceed to next activity
continueBtn = (Button) findViewById(R.id.continue_btn);
continueBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//On click create a db reference and perform a query on it to find current user
//and authenticate it.
CollectionReference myRef = database.collection("users");
Query findNameQ = myRef.whereEqualTo("name", mUserName);
authenticateUser(findNameQ, mUserName);//I need to pass to this method a variable 'findNameQ' which can be used to validate the existence of a user.
//mUserName is the name it's looking for.
}
});
После выполнения запроса он запускает метод authenticateUser, который в основном проверяет существование пользователя и создает новый, еслипользователь не существуетВот метод:
private void authenticateUser(Query findNameQ, String mUserName)
{
//Read from database and check if user exists
//if current users name matches to one in database then set userExists to true.
if (findNameQ != null)
{
userExists = true;
Toast.makeText(this, "User exists!", Toast.LENGTH_SHORT).show();
}
Toast.makeText(this, "User doesn't exist!", Toast.LENGTH_SHORT).show();
}
Я бы хотел использовать if (findNameQ! = False) вместо null
, как мне сделать так, чтобы моя переменная findNameQ была логической, а не объектом запроса?