2016-04-28 60 views
0

令人困惑的標題,我知道,但不是很舒服如何解釋。 這裏會盡我所能。Firebase Android試圖推動孩子,然後一個孩子以下

我試圖完成的是,當用戶點擊一個按鈕時,來自一個字段的文本被推送到firebase,然後下一個字段的文本被推到下面。

事情是這樣的:

- 「UID」 - 「Scripttitle」 - 「在scriptUrl」

這裏,我想用這樣做代碼:

final EditText title = (EditText) rlLayout.findViewById(R.id.inputScriptTitle); 
     final EditText scripturl = (EditText) rlLayout.findViewById(R.id.inputScriptURL); 
     final Button button = (Button) rlLayout.findViewById(R.id.submitScriptButton); 
     button.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       new Firebase("https://theatre-assistant.firebaseio.com/scripts") 
         .push() 
         .child("scripttitle") 
         .setValue(title.getText().toString()); 

        new Firebase("https://theatre-assistant.firebaseio.com/scripts") 
          .push() 
          .child(title.getText().toString()) 
          .setValue(scripturl); 

我很確定我只是在做一些非常基本的錯誤,但由於我是編程新手,我無法真正瞭解可能的原因。

該錯誤的logcat是:

--------- beginning of crash 
04-28 12:26:15.860 4979-4979/com.langaard.theatreassistant E/AndroidRuntime: FATAL EXCEPTION: main 
                      Process: com.langaard.theatreassistant, PID: 4979 
                      Theme: themes:{default=overlay:system, iconPack:system, fontPkg:system, com.android.systemui=overlay:system, com.android.systemui.navbar=overlay:system} 
                      com.firebase.client.FirebaseException: Failed to parse to snapshot 
                       at com.firebase.client.Firebase.setValueInternal(Firebase.java:357) 
                       at com.firebase.client.Firebase.setValue(Firebase.java:248) 
                       at com.langaard.theatreassistant.ManageScriptsFragment$1.onClick(ManageScriptsFragment.java:57) 
                       at android.view.View.performClick(View.java:5204) 
                       at android.view.View$PerformClick.run(View.java:21158) 
                       at android.os.Handler.handleCallback(Handler.java:739) 
                       at android.os.Handler.dispatchMessage(Handler.java:95) 
                       at android.os.Looper.loop(Looper.java:148) 
                       at android.app.ActivityThread.main(ActivityThread.java:5461) 
                       at java.lang.reflect.Method.invoke(Native Method) 
                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
                       Caused by: java.lang.IllegalArgumentException: Conflicting getter definitions for property "importantForAccessibility": android.view.View#isImportantForAccessibility(0 params) vs android.view.View#getImportantForAccessibility(0 params) 
                       at com.fasterxml.jackson.databind.ObjectMapper._convert(ObjectMapper.java:2615) 
                       at com.fasterxml.jackson.databind.ObjectMapper.convertValue(ObjectMapper.java:2542) 
                       at com.firebase.client.Firebase.setValueInternal(Firebase.java:346) 
                       at com.firebase.client.Firebase.setValue(Firebase.java:248)  
                       at com.langaard.theatreassistant.ManageScriptsFragment$1.onClick(ManageScriptsFragment.java:57)  
                       at android.view.View.performClick(View.java:5204)  
                       at android.view.View$PerformClick.run(View.java:21158)  
                       at android.os.Handler.handleCallback(Handler.java:739)  
                       at android.os.Handler.dispatchMessage(Handler.java:95)  
                       at android.os.Looper.loop(Looper.java:148)  
                       at android.app.ActivityThread.main(ActivityThread.java:5461)  
                       at java.lang.reflect.Method.invoke(Native Method)  
                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)  
                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)  
                       Caused by: com.fasterxml.jackson.databind.JsonMappingException: Conflicting getter definitions for property "importantForAccessibility": android.view.View#isImportantForAccessibility(0 params) vs android.view.View#getImportantForAccessibility(0 params) 
                       at com.fasterxml.jackson.databind.SerializerProvider._createAndCacheUntypedSerializer(SerializerProvider.java:838) 
                       at com.fasterxml.jackson.databind.SerializerProvider.findValueSerializer(SerializerProvider.java:387) 
                       at com.fasterxml.jackson.databind.SerializerProvider.findTypedValueSerializer(SerializerProvider.java:478) 
                       at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:97) 
                       at com.fasterxml.jackson.databind.ObjectMapper._convert(ObjectMapper.java:2593) 
                       at com.fasterxml.jackson.databind.ObjectMapper.convertValue(ObjectMapper.java:2542)  
                       at com.firebase.client.Firebase.setValueInternal(Firebase.java:346)  
                       at com.firebase.client.Firebase.setValue(Firebase.java:248)  
                       at com.langaard.theatreassistant.ManageScriptsFragment$1.onClick(ManageScriptsFragment.java:57)  
                       at android.view.View.performClick(View.java:5204)  
                       at android.view.View$PerformClick.run(View.java:21158)  
                       at android.os.Handler.handleCallback(Handler.java:739)  
                       at android.os.Handler.dispatchMessage(Handler.java:95)  
                       at android.os.Looper.loop(Looper.java:148)  
                       at android.app.ActivityThread.main(ActivityThread.java:5461)  
                       at java.lang.reflect.Method.invoke(Native Method)  
                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)  
                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)  
                       Caused by: java.lang.IllegalArgumentException: Conflicting getter definitions for property "importantForAccessibility": android.view.View#isImportantForAccessibility(0 params) vs android.view.View#getImportantForAccessibility(0 params) 
                       at com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.getGetter(POJOPropertyBuilder.java:190) 
                       at com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.getAccessor(POJOPropertyBuilder.java:283) 
                       at com.fasterxml.jackson.databind.ser.BeanSerializerFactory.removeIgnorableTypes(BeanSerializerFactory.java:678) 
                       at com.fasterxml.jackson.databind.ser.BeanSerializerFactory.findBeanProperties(BeanSerializerFactory.java:557) 
                       at com.fasterxml.jackson.databind.ser.BeanSerializerFactory.constructBeanSerializer(BeanSerializerFactory.java:373) 
                       at com.fasterxml.jackson.databind.ser.BeanSerializerFactory.findBeanSerializer(BeanSerializerFactory.java:268) 
                       at com.fasterxml.jackson.databind.ser.BeanSerializerFactory._createSerializer2(BeanSerializerFactory.java:213) 
                       at com.fasterxml.jackson.databind.ser.BeanSerializerFactory.createSerializer(BeanSerializerFactory.java:152) 
                       at com.fasterxml.jackson.databind.SerializerProvider._createUntypedSerializer(SerializerProvider.java:873) 
                       at com.fasterxml.jackson.databind.SerializerProvider._createAndCacheUntypedSerializer(SerializerProvider.java:833) 
                       at com.fasterxml.jackson.databind.SerializerProvider.findValueSerializer(SerializerProvider.java:387)  
                       at com.fasterxml.jackson.databind.SerializerProvider.findTypedValueSerializer(SerializerProvider.java:478)  
                       at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:97)  
                       at com.fasterxml.jackson.databind.ObjectMapper._convert(ObjectMapper.java:2593)  
                       at com.fasterxml.jackson.databind.ObjectMapper.convertValue(ObjectMapper.java:2542)  
                       at com.firebase.client.Firebase.setValueInternal(Firebase.java:346)  
                       at com.firebase.client.Firebase.setValue(Firebase.java:248)  
                       at com.langaard.theatreassistant.ManageScriptsFragment$1.onClick(ManageScriptsFragment.java:57)  
                       at android.view.View.performClick(View.java:5204)  
                       at android.view.View$PerformClick.run(View.java:21158)  
                       at android.os.Handler.handleCallback(Handler.java:739)  
                       at android.os.Handler.dispatchMessage(Handler.java:95)  
                       at android.os.Looper.loop(Looper.java:148)  
                       at android.app.ActivityThread.main(ActivityThread.java:5461)  
                       at java.lang.reflect.Method.invoke(Native Method)  
                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)  
                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)  

回答

1

替換您如下代碼

new Firebase("https://theatre-assistant.firebaseio.com/scripts") 
          .push() 
          .child(title.getText().toString()) 
          .setValue(scripturl); 

new Firebase("https://theatre-assistant.firebaseio.com/scripts") 
          .push() 
          .child(title.getText().toString()) 
          .setValue(scripturl.getText().toString()); 

//因爲你直接傳遞對象值法取代並傳遞來自編輯的文本數據並不反對

+0

謝謝。那裏錯誤的錯誤。我知道這一點,但由於某種原因無法看到它。修正了這個錯誤,但是我沒有給出我所需要的Firebase數據結構,因此必須進一步做實驗。謝謝你的幫助。 –

+0

歡迎 - 符文Langaard –

2

你不能設置視圖給setValue。 scripturl是一個EditText。

new Firebase("https://theatre-assistant.firebaseio.com/scripts") 
         .push() 
         .child(title.getText().toString()) 
         .setValue(scripturl); 

如果您使用那樣的話您沒有看到任何錯誤。

new Firebase("https://theatre-assistant.firebaseio.com/scripts") 
      .child(title.getText().toString()) 
      .push() 
      .setValue(scripturl.getText().toString); 
相關問題