为什么updateChilden with POJO与Firebase Android SDK配合使用,而与Firebase Server SDK配合使用?
最起码的例子:为什么updateChilden with POJO与Firebase Android SDK配合使用,而与Firebase Server SDK配合使用?,android,google-app-engine,firebase,Android,Google App Engine,Firebase,最起码的例子: public class Post { public String id; public String name; } 在安卓方面,我称之为: Post post = new Post("some id", "some name"); final Map<String, Object> updates = new HashMap<>(); updates.put("posts/" + post.id, post); databaseRef
public class Post {
public String id;
public String name;
}
在安卓方面,我称之为:
Post post = new Post("some id", "some name");
final Map<String, Object> updates = new HashMap<>();
updates.put("posts/" + post.id, post);
databaseReference.updateChildren(updates).addOnCompleteListener(listener);
Post Post=新帖子(“某个id”、“某个名称”);
最终映射更新=新建HashMap();
updates.put(“posts/”+post.id,post);
databaseReference.updateChildren(更新).addOnCompleteListener(监听器);
它是有效的。
但是,如果我在服务器(AppEngine Java Env)上执行相同的操作,则会出现异常:
无法分析类为Post firebase的节点
当我在服务器上执行toMap()
变通方法时,它会起作用,但为什么我需要它呢?
这只是一个简单的POJO,它在Android端工作
编辑:不要担心id,它只是一个示例值。我在应用程序和服务器中使用FireBase的实际ID
谢谢您的代码看起来像是试图用空哈希映射更新位置。这篇文章根本没有被使用,只是用来撰写位置的名称。我不清楚那个位置是什么,因为post没有一个toString()方法来描述它将如何呈现字符串连接。哦,我忘记了put上的第二个参数:)对不起。。。此外,我的模型中确实有一个id字段,为了简洁起见,我想省略它。现在它应该更有意义了。问题仍然在于,该代码在Android上运行,而不是在AppEngine上。你能将你的服务器代码发布到发生错误的地方吗?我可以在GAE之外的本地运行与该代码相当的代码,没有问题。您可能在init或其他某个点上做错了什么。我建议您先让您的代码在本地进程中运行,然后尝试让它在GAE上运行。@Linxy:这是服务器和Android代码。我的问题是为什么它能在Android上工作,而不能在GAE上工作?我有一个GAE实例用于其他很多东西,只要我不是发布POJO而是发布地图,它就可以正常工作@正如我所说,我也可以在GAE之外运行代码而不会出现任何问题。问题出在GAE内部。为什么只有当我在那里执行
toMap()
解决方案时,它才起作用?它们是相同的对象和相同的调用。数据库参考设置工作完美,周围的一切也是如此。我的问题实际上只是GAE上的POJO问题。