带push utf8字符串的Firebase Java API

带push utf8字符串的Firebase Java API,java,utf-8,firebase,firebase-realtime-database,Java,Utf 8,Firebase,Firebase Realtime Database,我使用java将字符串推送到firebase,代码非常简单: Map<String, Object> dataMap = new HashMap<>(); dataMap.put("title", "Khao khát cuộc sống bình thường sau Masters 2016"); firebase.post("posts", dataMap); 我不想在推送到Firebase之前将字符串转换成字节数组。 问题是什么?我如何解决 谢谢。没有名为pos

我使用java将字符串推送到firebase,代码非常简单:

Map<String, Object> dataMap = new HashMap<>();
dataMap.put("title", "Khao khát cuộc sống bình thường sau Masters 2016");
firebase.post("posts", dataMap);
我不想在推送到Firebase之前将字符串转换成字节数组。 问题是什么?我如何解决

谢谢。

没有名为
post()
的方法,因此我假设您正在使用其他库写入数据库。你怎么写信给Firebase的

我刚刚在Java客户端添加了相同的文本:

Firebase ref = new Firebase("https://stackoverflow.firebaseio.com/36776859");
Map<String, Object> dataMap = new HashMap<>();
dataMap.put("title", "Khao khát cuộc sống bình thường sau Masters 2016");
ref.updateChildren(dataMap);
因此,您使用的客户端很可能已经破坏了文本,或者无法将其传输到Firebase。

没有名为
post()
的方法,因此我假设您正在使用其他库写入数据库。你怎么写信给Firebase的

我刚刚在Java客户端添加了相同的文本:

Firebase ref = new Firebase("https://stackoverflow.firebaseio.com/36776859");
Map<String, Object> dataMap = new HashMap<>();
dataMap.put("title", "Khao khát cuộc sống bình thường sau Masters 2016");
ref.updateChildren(dataMap);

因此,您使用的客户端很可能已经破坏了文本,或者无法将其传输到Firebase。

我找到了原因。这是因为我使用的是Brandon Gresham的Java客户端firebase4j。在该客户机中,他们使用的是没有设置字符集的StringEntity。要修复它,只需添加StandardCharsets.UTF_8

在net/thegreshams/firebase4j/service/Firebase.java的第422行中,修改:

result = new StringEntity(jsonData);


我找到了原因。这是因为我使用的是Brandon Gresham的Java客户端firebase4j。在该客户机中,他们使用的是没有设置字符集的StringEntity。要修复它,只需添加StandardCharsets.UTF_8

在net/thegreshams/firebase4j/service/Firebase.java的第422行中,修改:

result = new StringEntity(jsonData);


谢谢你的回答。您使用的是什么客户端?我正在使用Brandon Gresham的firebase4j。我认为推后数据仍然列在Firebase的RESTAPI中。我也尝试使用PUT,但结果是一样的。我之所以使用POST而不是PUT,是因为我在将数据保存到Firebase后需要唯一的ID。请参阅并找到“纯Java SDK”链接。感谢您的回答。您使用的是什么客户端?我正在使用Brandon Gresham的firebase4j。我认为推后数据仍然列在Firebase的RESTAPI中。我也尝试使用PUT,但结果是一样的。我之所以使用POST而不是PUT,是因为我在将数据保存到Firebase后需要唯一的ID。请参阅并找到“纯Java SDK”链接。感谢您的更新。请记住,这是不可能从问题中知道的,因为您没有说您正在使用什么客户端库。总的来说,我强烈推荐使用我链接的Firebase Java SDK,因为它可以防止许多类似的问题。感谢您的更新。请记住,这是不可能从问题中知道的,因为您没有说您正在使用什么客户端库。总的来说,我强烈建议使用链接到的Firebase Java SDK,因为它可以防止许多类似的问题。
result = new StringEntity(jsonData, StandardCharsets.UTF_8);