- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
使用 Firebase 2.4 时 ref.updateChildren()
使用 HashMap,而不是 HashMap<String, Object>
(例如 HashMap<String, User>
)获取 IllegalStateException。
> 09-29 18:03:21.680: E/AndroidRuntime(6863): FATAL EXCEPTION: main
> 09-29 18:03:21.680: E/AndroidRuntime(6863): Process:
> com.xxx.xxx.xxx, PID: 6863 09-29
> 18:03:21.680: E/AndroidRuntime(6863): java.lang.IllegalStateException:
> Could not execute method of the activity 09-29 18:03:21.680:
> E/AndroidRuntime(6863): at
> android.view.View$1.onClick(View.java:4035) 09-29 18:03:21.680:
> E/AndroidRuntime(6863): at
> android.view.View.performClick(View.java:4881) 09-29 18:03:21.680:
> E/AndroidRuntime(6863): at
> android.view.View$PerformClick.run(View.java:19592) 09-29
> 18:03:21.680: E/AndroidRuntime(6863): at
> android.os.Handler.handleCallback(Handler.java:733) 09-29
> 18:03:21.680: E/AndroidRuntime(6863): at
> android.os.Handler.dispatchMessage(Handler.java:95) 09-29
> 18:03:21.680: E/AndroidRuntime(6863): at
> android.os.Looper.loop(Looper.java:146) 09-29 18:03:21.680:
> E/AndroidRuntime(6863): at
> android.app.ActivityThread.main(ActivityThread.java:5756) 09-29
> 18:03:21.680: E/AndroidRuntime(6863): at
> java.lang.reflect.Method.invokeNative(Native Method) 09-29
> 18:03:21.680: E/AndroidRuntime(6863): at
> java.lang.reflect.Method.invoke(Method.java:515) 09-29 18:03:21.680:
> E/AndroidRuntime(6863): at
> com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1291)
> 09-29 18:03:21.680: E/AndroidRuntime(6863): at
> com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1107) 09-29
> 18:03:21.680: E/AndroidRuntime(6863): at
> dalvik.system.NativeStart.main(Native Method) 09-29 18:03:21.680:
> E/AndroidRuntime(6863): Caused by:
> java.lang.reflect.InvocationTargetException 09-29 18:03:21.680:
> E/AndroidRuntime(6863): at
> java.lang.reflect.Method.invokeNative(Native Method) 09-29
> 18:03:21.680: E/AndroidRuntime(6863): at
> java.lang.reflect.Method.invoke(Method.java:515) 09-29 18:03:21.680:
> E/AndroidRuntime(6863): at
> android.view.View$1.onClick(View.java:4030) 09-29 18:03:21.680:
> E/AndroidRuntime(6863): ... 11 more 09-29 18:03:21.680:
> E/AndroidRuntime(6863): Caused by:
> com.firebase.client.FirebaseException: Failed to parse node with class
> class com.xxx.xxx.xxx.User 09-29
> 18:03:21.680: E/AndroidRuntime(6863): at
> com.firebase.client.snapshot.NodeUtilities.NodeFromJSON(NodeUtilities.java:84)
> 09-29 18:03:21.680: E/AndroidRuntime(6863): at
> com.firebase.client.snapshot.NodeUtilities.NodeFromJSON(NodeUtilities.java:12)
> 09-29 18:03:21.680: E/AndroidRuntime(6863): at
> com.firebase.client.utilities.Validation.parseAndValidateUpdate(Validation.java:127)
> 09-29 18:03:21.680: E/AndroidRuntime(6863): at
> com.firebase.client.Firebase.updateChildren(Firebase.java:438)
编辑:
有没有办法传递像 HashMap<String, User>
这样的自定义 HashMap?至 ref.updateChildren()
?
最佳答案
关于你的最后一个问题:
Is there a way to pass custom HashMap like HashMap to ref.updateChildren() ?
适用于 Android/Java 的 Firebase SDK 不支持直接将 POJO(例如您的 User
类)传递到 updateChildren()
。
但是您可以做的是将 POJO 转换为 Map
:
Map<String, Object> userMap = new ObjectMapper().convertValue(user, Map.class);
然后您可以将值映射放入您传递给 updateChildren()
的值中:
updates.put("users/"+uid, userMap);
updates.put("lists/"+uid+"/mine, "value");
ref.updateChildren(updates);
关于java - Android Firebase 2.4 IllegalStateException 使用新的 ref.updateChildren(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32848024/
我是 CSLA 的新手,我想了解 FieldManager.updatechildren(this) 与 FieldManager.updatechildren 之间的区别。什么时候适合使用其中任何一
我对 setValue() 和 updateChildren() 进行了研究。我已经测试了它们从 firebase 数据库添加和更新数据。据我所知,他们都做了同样的事情,并对它们做了一些研究。 据我所
大家好。我在 Android Studio 和 Firebase 中遇到了困难,每当我尝试使用 updateChildren 时,它都会不断替换旧的。我认为它会保留节点内的旧数据,这是代码: priv
调用: HashMap updates = new HashMap(); updates.put(myKey, null); mDatabase.updateChildren(updates); up
我在 Firebase 上遇到 valueEvenListener 问题。考虑这种情况: Firebase ref = new Firebase(Constant.BASEURL).child("my
我有两个引用文献要更新: 1. /items/item1/sumlikes: 4 "item1"被 4 个用户喜欢。我需要一个事务,因为多个用户可以同时写入这个值:https://firebase.g
假设我在数据库上有两个节点(nodeA 和 nodeB)并且我在这些节点上附加了两个监听器: DatabaseReference rootRef = FirebaseDatabase.getInsta
关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。 这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topi
我正在使用 Firebase 数据库,并且希望脱机持久性也能正常工作。我发现,在离线模式下调用DatabaseReference.updateChildren时,会立即触发值监听器回调,而OnComp
我正在尝试在 Firebase 中创建一个新数据并根据用户对其进行更新,但在尝试建立关系时我总是遇到错误。我附上了节点的图像和一些代码。 和代码: // Create a refere
我可以像使用 setValue() 一样使用任意(Firebase 友好的)对象的映射来使用 updateChildren() 吗?以下工作正常: public void addReview(FbRe
使用 Firebase 2.4 时 ref.updateChildren()使用 HashMap,而不是 HashMap (例如 HashMap)获取 IllegalStateException。 >
当尝试在同一 ref 中使用“users/user”和“users/user/name”等路径执行多路径写入时。 updatChildren() 操作,应用程序崩溃并出现以下异常: com.fireb
我是一名优秀的程序员,十分优秀!