textview не устанавливает текст из данных в FirebaseFirestore - PullRequest
0 голосов
/ 07 октября 2018
public class MainActivity extends AppCompatActivity {

private static final String TAG = MainActivity.class.getSimpleName();
private FirebaseFirestore db = FirebaseFirestore.getInstance();

private EditText nameEdit, ageEdit;
private TextView name, age;
private Button btn;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    nameEdit = findViewById(R.id.nameText);
    ageEdit = findViewById(R.id.ageText);
    name = findViewById(R.id.textView);
    age = findViewById(R.id.textView2);
    btn = findViewById(R.id.button);

    final DocumentReference docRef = db.document("users/user2");

    final Map<String, Object> user = new HashMap<>();

    docRef.set(user);

    btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String nameString = nameEdit.getText().toString();
            String ageStr = ageEdit.getText().toString();
            if(ageStr.equals(""))
                ageStr = "0";
            int ageInt = Integer.parseInt(ageStr);
            user.put("name", nameString);
            user.put("age", ageInt);

            docRef.set(user);
            docRef.get()
                    .addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
                        @Override
                        public void onComplete(@NonNull Task<DocumentSnapshot> task) {
                            if(task.isSuccessful()){
                                System.out.println(task.getResult().getData().get("name").toString());
                                name.setText(task.getResult().getData().get("name").toString());
                                age.setText(task.getResult().getData().get("age").toString());
                            }
                        }
                    });
        }
    });
}

}

Проблема в name.setText(task.getResult().getData().get("name").toString()); не работает.

и age.setText(task.getResult().getData().get("age").toString()); работает хорошо.

Я проверил, существуют ли данные из EditTextв моей базе данных Firebase.и это работает.и age(textview) отображает измененный текст в моем приложении.но name(textview) не отображает измененный текст.но данные существуют.потому что System.out.println(task.getResult().getData().get("name").toString()); работает нормально.и он печатает правильные данные из базы данных.

...