2013-07-10 64 views
3

因此,我已經嘗試過3次,並且沒有成功地製作與Firebase進行通信的Android應用。就像the tutorial這麼簡單,我不禁想到我或它(很可能是前者)缺少一些東西。無法通過Android應用連接到Firebase

我正在製作的示例應用程序只是保留了一個TextView,它應該隨我的Firebase的所有更改而更新(https://dummy-firebase.firebaseio.com/)(因爲我無法制作公開的Firebase,如果您希望可以粘貼您的網址自己的firebase測試代碼)。下面是對火力地堡什麼是快照:

Firebase snapshot

這是我唯一的活動的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" /> 

這裏是Manife的圖片ST這樣你就可以清楚地看到INTERNET權限:

enter image description here

現在,當我從我的瀏覽器改變在火力地堡數據,相信在TextView的數據應該更新。這種情況沒有發生,並且我沒有成功嘗試在先前的Firebase Android項目嘗試中使用EditText和Buttons來放置數據。

在此先感謝您抽出時間來查看此問題。由於Firebase似乎設置了多麼簡單(並且是爲Javascript版本設計的),我真的被難住了,因爲我做錯了什麼!

謝謝!

+0

順便說一句,我的物理2.2設備(而不是仿真器)和設備連接到互聯網上運行這通過Eclipse是罰款。 (在Wi-Fi和3G上都測試過)。謝謝 – nt22

+0

你可以嘗試一個示例應用程序,看看他們是否在你的設備上工作?如果您的項目存在問題,或者這是Android SDK的問題(完全有可能,SDK是新的並處於測試階段),那麼這可以讓我們知道。你應該可以直接在你的設備上安裝https://github.com/firebase/AndroidChat/raw/master/AndroidChat.apk或https://github.com/firebase/AndroidDrawing/blob/master/AndroidDrawing.apk,測試它們。 –

+1

@MichaelLehenbauer:我只是在物理2.3.6手機(三星Galaxy Ace)上試用了Firebase庫中的AndroidDrawing和AndroidChat應用程序,但它們不起作用。沒有強制關閉,但他們只是不連接。 – MasterScrat

回答

4

你可以嘗試使用最新的SDK(v1.0.2),看看它是否解決了這個問題?我們剛剛爲Android的某些SSL限制添加了一個解決方法。

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

+0

無論你添加什麼,它都可以工作。謝謝! – nt22

+0

我使用相同的SDK和jar文件與API級別14和運行在模擬器,但我仍然面臨同樣的問題上面提到的任何東西我的代碼不工作甚至簡單的代碼與日食可以有人會告訴我最新的問題? @Greg Soltis – user3233280

0

試試這個代碼。它使用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 Tutorial