【问题标题】:Implementing Firebase in Play Framework在 Play 框架中实现 Firebase
【发布时间】:2016-11-18 14:42:43
【问题描述】:
我们必须使用 Play 框架实现一个带有服务器的 android 应用,并且我们必须使用 firebase 进行服务器到客户端的通信。在客户端,我们已经成功实现了 firebase(至少我希望如此)。但是,我们不知道如何在服务器端实现 firebase 消息传递,而且 firebase 文档并没有真正帮助我们。
我们正在使用最新版本的 Play。
如果有人可以向我们解释实施过程,那就太好了。
【问题讨论】:
标签:
android
firebase
playframework
server
【解决方案1】:
我已经非常接近在 Java Play 上完全实现 firebase 了!我按照这里的步骤操作:https://firebase.google.com/docs/admin/setup
1) 我使用 jar-download(dot)com/online-maven-download-tool.php 手动添加了 Firebase jar。我是手动完成的,因为 build.sbt 没有下载 jars。
<dependency>
<groupId>com.google.firebase</groupId>
<artifactId>firebase-admin</artifactId>
<version>4.0.1</version>
</dependency>
2) 从控制台获取服务帐号 JSON。 firebase.google.com/
3) 将代码添加到您的 play 项目中的单例中
FirebaseOptions options = new FirebaseOptions.Builder()
.setServiceAccount(new FileInputStream("path/to/serviceAccountKey.json"))
.setDatabaseUrl("https://<DATABASE_NAME>.firebaseio.com/")
.build();
FirebaseApp.initializeApp(options);
4) 检索数据
public static class Post {
public String author;
public String title;
public Post(String author, String title) {
// ...
}
}
// Get a reference to our posts
final FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference ref = database.getReference("server/saving-data/fireblog/posts");
// Attach a listener to read the data at our posts reference
ref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Post post = dataSnapshot.getValue(Post.class);
System.out.println(post);
}
@Override
public void onCancelled(DatabaseError databaseError) {
System.out.println("The read failed: " + databaseError.getCode());
}
});
这是我所知道的。我只能检索一次数据,然后其余的调用就挂起,永远不会返回或出错。如果您有更多成功,请评论这个问题或我的问题。 Firebase and Java Play! Framework not fully working together