मैं Firebase का उपयोग कर रहा हूं, और मैं अपने Android ऐप के माध्यम से Firebase के डेटा को दिखाने की कोशिश कर रहा हूं। फिर भी, जब मैं ऐप चलाता हूं, तो यह क्रैश हो जाता है और लॉगकैट कहता है "टाइप करने में विफल रहा"। मैंने जावा क्लास में JSON संरचना के गुणों की नकल की।
यहाँ मुख्यता है:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Firebase.setAndroidContext(this);
Firebase ref = new Firebase("https://fbandg.firebaseio.com/");
android.R.layout.simple_list_item_1, android.R.id.text1);
final TextView textbox = (TextView) findViewById(R.id.textbox);
Firebase.setAndroidContext(this);
ValueEventListener newCon = ref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
fObject obj = dataSnapshot.getValue(fObject.class); //Line 49
textbox.setText(obj.toString());
}
@Override
public void onCancelled(FirebaseError firebaseError) {
}
});
यहाँ जावा वर्ग मैंने बनाया है:
public class fObject
{
String newCond;
public String getCondition()
{
return newCond;
}
}
निर्मित त्रुटियाँ निम्नलिखित हैं:
firebase.client.DataSnapshot.getValue(DataSnapshot.java:183)
com.example.elish_000.myfirstapp.MainActivity$1.onDataChange(MainActivity.java:49)
2 जवाब
इसे इस्तेमाल करे,
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Firebase.setAndroidContext(this);
Firebase ref = new Firebase("https://fbandg.firebaseio.com");
final TextView textbox = (TextView) findViewById(R.id.textbox);
ref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
fObject fobject = new fObject();
fobject.setNewCondition(dataSnapshot.child("condition").getValue().toString());
textbox.setText(fobject.getNewCondition());
}
@Override
public void onCancelled(FirebaseError firebaseError) {
}
});
अपने fObject वर्ग को संशोधित करें,
public class fObject
{
String newCond;
public String getNewCond()
{
return newCond;
}
public void setNewCond(String cond)
{
newCond = cond;
}
}
फायरबेस के JSON-to-Java मैपर खेतों को मैप करने के तरीके को निर्धारित करने के लिए जावाबीन पैटर्न का उपयोग करता है। एक क्लास के लिए एक वैध जावाबिन होने के लिए, फ़ील्ड नाम और गेट्टर / सेटर का मिलान करना होगा।
अपनी कक्षा को काम करने के लिए, इसे इसमें बदलें:
public class fObject
{
String newCond;
public String getNewCond()
{
return newCond;
}
}
फिर आप इसे DataSnapshot
से पढ़ सकते हैं:
fObject obj = dataSnapshot.getValue(fObject.class);
मैंने इसे कुछ समय पहले बड़े पैमाने पर कवर किया है: जब मैं JSON को Firebase से Java ऑब्जेक्ट्स में बदलूं?" आपको शायद वह भी पढ़ना चाहिए।
संबंधित सवाल
नए सवाल
java
जावा एक उच्च स्तरीय प्रोग्रामिंग भाषा है। इस टैग का उपयोग तब करें जब आपको भाषा का उपयोग करने या समझने में समस्या हो। इस टैग का उपयोग शायद ही कभी किया जाता है और इसका उपयोग अक्सर [वसंत], [वसंत-बूट], [जकार्ता-ई], [Android], [javafx], [हडूप], [श्रेणी] और [मावेन] के साथ किया जाता है।