2015-05-09 58 views
2

我的Java代碼,請參閱以下內容:爲什麼我無法通過Firebase從我的設備獲取數據?

package com.example.user.firebase; 
public class MainActivity extends ActionBarActivity { 

private Firebase mRef; 

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

@Override 
protected void onStart(){ 
    super.onStart(); 
    Button mbuttonHigh = (Button) findViewById(R.id.buttonHigh); 
    Button mbuttonLow = (Button) findViewById(R.id.buttonLow); 
    final TextView mtextViewCondition = (TextView) findViewById(R.id.textViewCondition); 

    mRef = new Firebase("https://myfire.firebaseio.com/light/GPIO"); 
    mbuttonLow.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      mRef.setValue("0"); 
     } 
    }); 

    mbuttonHigh.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      mRef.setValue("1"); 
     } 
    }); 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.menu_main, menu); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle action bar item clicks here. The action bar will 
    // automatically handle clicks on the Home/Up button, so long 
    // as you specify a parent activity in AndroidManifest.xml. 
    int id = item.getItemId(); 

    //noinspection SimplifiableIfStatement 
    if (id == R.id.action_settings) { 
     return true; 
    } 

    return super.onOptionsItemSelected(item); 
} 
} 

我可以發送 「0」 或 「1」 到我的火力點。但我不知道爲什麼我的設備(ARM coretex M3 EVB)無法獲取數據。

當我使用HTML時,我的設備(ARM coretex M3 EVB)可以獲取數據。我的HTML代碼請參閱下面:

var myDataRef = new Firebase('https://myfirebase.firebaseio.com/light'); 
    function high(){ 
     var gpio = "1"; 
     myDataRef.set({ 
      GPIO: gpio, 
     }); 
}; 

function low(){ 
    var gpio = "0"; 
    myDataRef.set({ 
     GPIO: gpio, 
    }); 
}; 

兩種方式都可以正常發送到firebase。我不知道爲什麼我的設備(ARM coretex M3)無法通過java獲取數據。 Java的setvale()和html的設置是不同的?

非常感謝。 :D

+0

請下一次還要包含*讀取*數據的代碼,因爲問題很可能是寫入和讀取操作的數據結構之間不匹配。請參閱http://stackoverflow.com/help/mcve –

+0

好的。謝謝:D – Charlie

回答

1

您需要爲您的Firebase參考添加一個偵聽器。

this.mRef2.child("thing").addChildEventListener(new ChildEventListener() {..}); 

或添加一個ValueEventListener。

+0

感謝您的回答。我的設備是ARM CoreTex M3 EVB。 – Charlie

相關問題