Firebase Android试图推动孩子,然后是一个孩子

时间:2016-04-28 10:41:21

标签: android firebase

令人困惑的标题,我知道,但不太清楚如何解释。 我会尽力而为。

我想要完成的是,当用户点击一个按钮时,一个字段中的文本被推送到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) 

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分: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());

//因为您直接传递value in value方法替换并从编辑文本而不是对象传递数据