Проверка, является ли значение нулевым - PullRequest
0 голосов
/ 24 мая 2018

В моем приложении зарегистрированный пользователь успешно добавляет комментарии к статьям.

Например, смотрите этот скриншот.

enter image description here

Теперь я хочу прочитать и отобразить эти комментарии в обзоре переработчика.Перед этим я хочу проверить, есть ли комментарии к конкретной статье.Если нет, то я должен сделать texview видимым, говоря, что нет никаких комментариев для этой конкретной статьи.У новостей (которые я получаю от Google News Api) нет идентификаторов, поэтому вместо этого я использовал newsTitle, как показано на рисунке.

Я написал этот код.

public class DisplayComments extends AppCompatActivity {

ArrayList<Comment> commentArrayList;
Toolbar mToolbar;
private DatabaseReference mDatabase;
private Intent i;
private String newsTitle;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_display_comments);

    mToolbar = (Toolbar) findViewById(R.id.display_comments_app_bar);

    setSupportActionBar(mToolbar);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    getSupportActionBar().setTitle("Display Comments");

    mDatabase = FirebaseDatabase.getInstance().getReference();

    commentArrayList = new ArrayList<>();

    i = getIntent();

    newsTitle = i.getStringExtra("newsTitle");

    mDatabase = FirebaseDatabase.getInstance().getReference();

    String userId = FirebaseAuth.getInstance().getCurrentUser().getUid();

    mDatabase = FirebaseDatabase.getInstance().getReference();

    Query query = mDatabase.child("comments").child("newsTitle").equalTo(newsTitle);

    query.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            if(dataSnapshot.exists()){
                Toast.makeText(DisplayComments.this,"There are comments posted",Toast.LENGTH_LONG).show();
            }else{
                Toast.makeText(DisplayComments.this,"There are no comments posted",Toast.LENGTH_LONG).show();

            }
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });


  }
}

Тем не менее, я всегда получаю Нет комментариев даже для статей с комментариями.Как сделать хороший запрос, который проверяет, есть ли комментарии или нет?

Спасибо,

Тео.

1 Ответ

0 голосов
/ 24 мая 2018

Вам нужен orderByChild ('newsTitle') статьи в вашем запросе.Исправьте это так:

Query query = mDatabase.child("comments").orderByChild("newsTitle").equalTo(newsTitle);

Приведенный выше код будет соответствовать newsTitle, указанному в указанном вами значении.

Ваш код пытался сделать запрос, но не определил критерии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...