您见识过实时数据库吗?
https://v.qq.com/txp/iframe/player.html?vid=e031884k3ar&width=500&height=375&auto=0
实时数据库是我们在四年多以前为 Firebase 引入的第一项功能。由云托管的 JSON 数据库在当时还算新鲜事物,因此,该功能立即备受瞩目。然而,真正让 Firebase 数据库与众不同的还是其提供单一、易用的 API,能够在不同的客户端之间即时同步数据。
实时数据库采用统一的编程接口,极大地简化了应用开发工作。借此,可以轻松构建实时协作应用。
Firebase 数据库真正的独特之处在于其实时同步。大多数传统数据库采用请求/响应的工作模式。您编写一个查询,然后要求数据库为您提供该查询的结果。如果您再次需要该结果,或者希望检查该结果的更新,您需要再次执行该查询。
我们的数据库则与此不同。我们的数据库在数据发生变化时会主动告诉您。您对我们的数据库下达指令:如果树中此位置的数据发生变化,请通知我。这样可以轻松地监控更改并使这些更改在所有用户之间保持同步。
Firebase 数据库依靠同一个 API 为您的应用提供数据的当前值以及对该数据的任何更新。
iOS
refHandle = postRef.observeEventType(FIRDataEventType.Value, withBlock: { (snapshot) in let postDict = snapshot.value as! [String : AnyObject] // …})
网站
firebase.database().ref('posts/' + postId).on('value', function(snapshot) { var post = snapshot.val(); // …
});
Android
mPostReference.addValueEventListener(new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { // Get Post object and use the values to update the UI Post post = dataSnapshot.getValue(Post.class); // … } @Override public void onCancelled(DatabaseError databaseError) { // Getting Post failed, log a message Log.w(TAG, "loadPost:onCancelled", databaseError.toException()); // … }
});
随后,您的应用会在其用户界面中显示该数据并允许用户处理该数据。就是这么简单。
是否遇到过在您的网络连接断开时所使用的应用无法响应的情况?大多数开发者都希望,无论网络状况如何,其应用都能保持工作。
有鉴于此,Firebase 数据库为应用中显示的所有数据建立了一个内部缓存。当网络连接临时断开时,应用会通过该缓存继续工作。
当连接断开时,Firebase 数据客户端会保留一个本地写入操作队列。您的应用会继续工作,能够继续响应请求,所有这一切都不必编写任何额外的代码。
Firebase 平台的强大之处在于其集成了我们的全部功能。我们仍在不断增加新的集成,这里只是介绍了您已经可以使用的几个集成示例。
让您的用户登录您的应用,然后让他们按照其身份安全地访问数据。将用户文件存储在 Firebase 存储中,然后使用实时数据库将文件状态和可用性同步到该应用的所有其他用户。使用 Firebase Analytics 跟踪哪些文件最受欢迎并邀请其他用户协作处理那些文件。
有了 Firebase,几乎一切皆有可能,构建应用也变得前所未有的简单。
8.9 Google Doodle:2016 年 Doodle 水果游戏 - 第 5 天