【问题标题】:Why Can I Not Get Data From My Device Tthrough Firebase?为什么我无法通过 Firebase 从我的设备获取数据?
【发布时间】:2015-05-09 09:01:10
【问题描述】:

我的java代码请看下面:

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的set不一样吗?

非常感谢。 :D

【问题讨论】:

  • 请下次还包括读取数据的代码,因为问题很可能是写入和读取操作的数据结构不匹配。见stackoverflow.com/help/mcve

标签: android html firebase


【解决方案1】:

您需要向 Firebase 引用添加一个侦听器。

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

或添加一个 ValueEventListener。

【讨论】:

  • 感谢您的回答。我的设备是 ARM CoreTex M3 EVB。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-01
  • 2020-08-20
  • 2019-02-13
  • 1970-01-01
相关资源
最近更新 更多