Nano Hash - криптовалюты, майнинг, программирование

Не удается заставить приложение Android подключиться к Firebase

Итак, я пробовал это 3 раза, и мне не удалось успешно создать приложение для Android, которое будет взаимодействовать с Firebase. Как бы ни было просто руководство, я не могу не думать о том, Мне или ему (скорее всего первому) чего-то не хватает.

Пример приложения, которое я делаю, просто содержит TextView, который должен обновляться при любых изменениях в моей Firebase по адресу https://dummy-firebase.firebaseio.com/ (поскольку я не могу создать общедоступную Firebase, если хотите, вы можете вставить URL-адрес своей собственной firebase, чтобы протестировать код). Вот снимок того, что есть в Firebase:

Снимок Firebase

Вот onCreate моей единственной активности:

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

    Firebase f = new Firebase("https://dummy-firebase.firebaseio.com");
    f.addValueEventListener(new ValueEventListener() {

        @Override
        public void onDataChange(DataSnapshot arg0) {
            TextView textViewSample = (TextView) findViewById(R.id.sampleTextView);
            textViewSample.setText(arg0.getValue(String.class));
        }

        @Override
        public void onCancelled() {
            // TODO Auto-generated method stub
        }
    });
}

А вот и единственный файл XML, activity_main.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >

<TextView
    android:id="@+id/sampleTextView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/hello_world" />

And here's a picture of the Manifest so you can clearly see the INTERNET permission:

введите здесь описание изображения

Теперь, когда я изменяю данные в Firebase из своего браузера, я считаю, что данные в TextView должны обновляться. Этого не происходит, и я безуспешно пытался поместить данные с помощью EditTexts и кнопок в предыдущих попытках проекта Firebase Android.

Заранее спасибо, что нашли время, чтобы просмотреть это. Из-за того, насколько простой Firebase кажется настроенным (и был для версии Javascript), я действительно озадачен тем, что я делаю неправильно!

Спасибо!!

10.07.2013

  • Кстати, я запускаю это через Eclipse на физическом устройстве 2.2 (не эмуляторе), и подключение к Интернету устройства в порядке. (Протестировано как на Wi-Fi, так и на 3G). Спасибо 10.07.2013
  • Не могли бы вы попробовать одно из примеров приложений и посмотреть, работают ли они на вашем устройстве? Это позволит нам узнать, есть ли проблема с вашим проектом или проблема с Android SDK (вполне возможно, SDK новый и находится в стадии бета-тестирования). Вы должны иметь возможность напрямую установить github.com/firebase/AndroidChat/raw/master. /AndroidChat.apk или github.com/firebase/AndroidDrawing/blob /master/ на вашем устройстве и протестируйте их. 10.07.2013
  • @MichaelLehenbauer: я только что попробовал приложения AndroidDrawing и AndroidChat из репозитория Firebase на физическом телефоне 2.3.6 (Samsung Galaxy Ace), они не работают. Нет принудительного закрытия, но они просто не подключаются. 10.07.2013
  • Хорошо спасибо. Тогда это похоже на проблему с нашей стороны. Мы посмотрим и свяжемся с вами (вероятно, на следующей неделе). Не стесняйтесь обращаться по электронной почте [email protected] для получения обновлений. Приносим извинения за доставленные неудобства! 10.07.2013
  • Как насчет того, чтобы проверить, работает ли f.setValue(test); работает? 13.07.2013
  • Android 2.2 имеет некоторые проблемы с ssl и может работать некорректно. Это постоянная вещь, которую мы изучаем, но она еще не поддерживается на 100%. Хотя Android 2.3 должен работать. Можете ли вы добавить следующее в свое приложение, а затем отправить вывод журнала по адресу [email protected]? статический { Firebase.getDefaultConfig().setLogLevel(Logger.Level.DEBUG); } 14.07.2013
  • На самом деле это похоже на проблему с реализацией SSL в Android 2.3. Мы работаем над обновлением библиотеки, которое работает вокруг него. Можете ли вы попробовать запустить свое приложение на эмуляторе с версией ›= 3.0? 15.07.2013

Ответы:


1

Можете ли вы попробовать последнюю версию SDK (v1.0.2) и посмотреть, решит ли она проблему? Мы только что добавили обходной путь для некоторых ограничений SSL в Android.

https://www.firebase.com/docs/downloads.html

15.07.2013
  • я использую те же файлы sdk и jar с API уровня 14 и работаю в эмуляторе, но все же я сталкиваюсь с той же проблемой, что бы ни упоминалось выше, мой код не работает даже для простых строк кода с eclipse, может ли кто-нибудь сказать мне, в чем проблема? @Грег Солтис 14.12.2014

  • 2

    Попробуйте этот код. Он использует класс pojo.

      buttonSave.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //Creating firebase object
                Firebase ref = new Firebase(Config.FIREBASE_URL);
    
                //Getting values to store
                String name = editTextName.getText().toString().trim();
                String address = editTextAddress.getText().toString().trim();
    
                //Creating Person object
                Person person = new Person();
    
                //Adding values
                person.setName(name);
                person.setAddress(address);
    
                //Storing values to firebase
                ref.child("Person").setValue(person);
    
    
                //Value event listener for realtime data update
                ref.addValueEventListener(new ValueEventListener() {
                    @Override
                    public void onDataChange(DataSnapshot snapshot) {
                        for (DataSnapshot postSnapshot : snapshot.getChildren()) {
                            //Getting the data from snapshot
                            Person person = postSnapshot.getValue(Person.class);
    
                            //Adding it to a string
                            String string = "Name: "+person.getName()+"\nAddress: "+person.getAddress()+"\n\n";
    
                            //Displaying it on textview
                            textViewPersons.setText(string);
                        }
                    }
    
                    @Override
                    public void onCancelled(FirebaseError firebaseError) {
                        System.out.println("The read failed: " + firebaseError.getMessage());
                    }
                });
    
            }
        });
    

    Источник: Учебное пособие по Firebase Android

    25.02.2016
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..