Не получать данные из Firestore на моем TextView - PullRequest
0 голосов
/ 19 ноября 2018

Я попытался показать текст в TextView, который я сохранил с помощью метода saveQuote в Firestore, но просто получил ноль.У меня также были некоторые проблемы, связанные с «нормальной» базой данных от Firebase.Я определил метод OnClick для кнопок на xml.Может кто-нибудь может сказать мне, как решить эту проблему?Мой logcat говорит: «E / memtrack: не удалось загрузить модуль memtrack», «GCM_HB_ALARM - выпуск без согласованного получения!»и «Недостаточно данных для HAL, ожидаемая позиция».

public class MainActivity extends AppCompatActivity {


    private static final String TAG = "InspiringQuote";
    public static final String AUTHOR_KEY = "author";
    public static final String QUOTE_KEY = "quote";
    private TextView textViewData;

    private DocumentReference mDocRef = FirebaseFirestore.getInstance().document("sampleData/inspiration");
    TextView mQuoteTextView;
    private FirebaseFirestore db = FirebaseFirestore.getInstance();


    private CollectionReference noteRef = db.collection("inspiration");


    private Toolbar toolbar;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //mQuoteTextView = (TextView) findViewById(R.id.text_view_data);
        textViewData = (TextView) findViewById(R.id.text_view_data);
        //Toolbar Options
        //toolbar = (Toolbar) findViewById(R.id.testToolbar);

//setSupportActionBar(toolbar);
        //getSupportActionBar().setTitle("HomePage");
        //getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        //


    }





    public void saveQuote(View view){
        EditText quoteView = (EditText) findViewById(R.id.editTextQuote);
        EditText authorVIew = (EditText) findViewById(R.id.editTextAuthor);
        String quoteText = quoteView.getText().toString();
        String authorText = authorVIew.getText().toString();


        if (quoteText.isEmpty() || authorText.isEmpty()){return;}
        Map<String, Object> dataToSave = new HashMap<String, Object>();
        dataToSave.put("QUOTE_KEY", quoteText);
        dataToSave.put("AUTHOR_KEY", authorText);
        mDocRef.set(dataToSave).addOnSuccessListener(new OnSuccessListener<Void>() {

            @Override
            public void onSuccess(Void aVoid) {
                Log.d(TAG, "Document has been saved");
            }
        }).addOnFailureListener(new OnFailureListener() {
            @Override
            public void onFailure(@NonNull Exception e) {
                Log.w(TAG, "Document was not saved", e);
            }
        });
    }

    public void loadNote(View v){
        mDocRef.get()
                .addOnSuccessListener(new OnSuccessListener<DocumentSnapshot>() {
                    @Override
                    public void onSuccess(DocumentSnapshot documentSnapshot) {
                        if(documentSnapshot.exists()){
                            String title = documentSnapshot.getString(QUOTE_KEY);
                            String description = documentSnapshot.getString(AUTHOR_KEY);

                            //Map<String, Object> note = documentSnapshot.getData();

                            textViewData.setText("Title" + title + "\n" + "Description: " + description);

                        }else{
                            Toast.makeText(MainActivity.this, "Document does not exits", Toast.LENGTH_SHORT);
                        }
                    }
                })
                .addOnFailureListener(new OnFailureListener() {
                    @Override
                    public void onFailure(@NonNull Exception e) {
                        Toast.makeText(MainActivity.this, "ERROR", Toast.LENGTH_SHORT).show();
                        Log.d(TAG, e.toString());

                    }
                });

    }
}

В imgae вы можете видеть, что я получаю "ноль"

1 Ответ

0 голосов
/ 19 ноября 2018

Согласно моему комментарию

String title = documentSnapshot.getString("QUOTE_KEY");
String description = documentSnapshot.getString("AUTHOR_KEY");

В вашем коде, когда вы добавляете значения, вы объявляете строковое значение.Однако, когда вы извлекаете значения, вы объявляете строковую переменную с другим значением.Поэтому он не может найти то, что вы ищете.

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