Запрос в Firebase - Облачная база данных [дубликат]

Я думаю, что ваше замешательство заключается в множественном наследовании, в котором это плохой практике, и в Java это тоже невозможно. Тем не менее, реализация нескольких интерфейсов разрешена на Java, и это также безопасно.

0
задан Alex Mamo 16 January 2019 в 10:16
поделиться

1 ответ

Да, это нормальное поведение фоновой обработки, так как функции базы данных Firebase выполняются в отдельном потоке, тогда вам нужно сделать следующее:

  1. Создать interface для слушатель метода getString():

    public interface OnValueReadyListener {
        void onValueReady(String name, String surName);
    }
    
  2. Передать экземпляр интерфейса методу nameOfMember:

    public void nameOfMember(OnValueReadyListener listener) {
        ...
    }
    
  3. [ 1118] Внутри метода onSuccess вызовите слушателя:

    @Override
    public void onSuccess(DocumentSnapshot documentSnapshot) {
        if (documentSnapshot.exists()) {
            String name = documentSnapshot.getString(ARG_Firebase_User_Name);
            String surname = documentSnapshot.getString(ARG_Firebase_User_SurName);
            listener.onValueReady(name, surname);
            Log.d(TAG, "onSuccess: " + name + " " + surname);
        } else {
            Log.d(TAG, "onSuccess: but not exist");
        }
    
    }
    
  4. Вызовите метод nameOfMember из onCreate следующим образом:

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        firebaseHandler = FirebaseHandler.getInstance();
        firebaseHandler.nameOfMember(new OnValueReadyListener() {
             public void onValueReady(String name, String surName) {
                 // Do what you need here. you have the values ready
             }
        });
    
    }
    
    [1113 ]
0
ответ дан Khalid Taha 16 January 2019 в 10:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: