Firebase 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) 

您不能将视图设置为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);

替换以下代码

 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方法中直接传递对象replace和传递来自编辑文本而非对象的数据

相关内容

最新更新