Firebase DataSnapshot о том, как отобразить результат в текстовом представлении - PullRequest
0 голосов
/ 10 ноября 2019

Я уже сделал с частью обновления данных, и теперь я хотел бы извлечь данные и отобразить их на основе ввода пользователя. У меня есть столбец редактирования текста для ввода пользователем и просмотра текста, чтобы отобразить данные, которые я сохранил в Firebase. Могу ли я узнать, как лучше всего работать над этим? Я обнаружил, что многие из них используют DataSnapshot, но они непосредственно читают определенное значение из Android Studio, в то время как я хотел бы прочитать значение из пользовательского ввода. 1004 *

Ответы [ 2 ]

0 голосов
/ 11 ноября 2019

Теперь это мой код.

package com.example.scanning;
public class Scan extends AppCompatActivity {
DatabaseReference database;
TextView tv_displayIsland;
EditText et_scanIsbn;
@Override
    protected void onCreate(Bundle 
savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_scan);
    tv_displayIsland=(TextView)findViewById(R.id.tv_displayIsland);
    et_scanIsbn=(EditText)findViewById(R.id.et_scanIsbn);
    String sbn=et_scanIsbn.getText().toString();
    database= FirebaseDatabase.getInstance().getReference();
    database.child("Island").orderByChild("isbn").equalTo(sbn).addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
            for (DataSnapshot ds:dataSnapshot.getChildren()){
                String island=ds.child("island").getValue(String.class);
                tv_displayIsland.setText(island);
            }
        }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {

        }
    });




}

}

0 голосов
/ 10 ноября 2019

Вы можете получить значение et_scanIsbn, выполнив следующие действия:

String sbn = et_scanIsbn.getText().toString();

Затем вы можете сделать:

database.child("Island").orderByChild("isbn").equalTo(sbn).addValueEvent....

Внутри onDataChange вы можете отобразить полученныезначение внутри TextView:

for(DataSnapshot ds : dataSnapshot.getChildren()){
String island = ds.child("island").getValue(String.class);
tv_displayIsland.setText(island);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...