2016-11-07 86 views
4

我知道,firebase有一个实时数据库,我已经使用它。但它首先基于用户身份验证。我想要做的是让Firebase实时数据库与其他应用程序共享其内容。就像Android中的ContentProvider一样。Google firebase - 如何与其他应用程序共享数据库

当我打电话:

FirebaseDatabase database = FirebaseDatabase.getInstance(); 

这会得到firebaseDatabase只为我的应用程序。我希望其他应用程序也能够使用实时数据库。他们如何连接到它?

更新:
从概念上讲,contentProvider可以解决这个问题吗?因为contentProvider只是一个抽象,并不关心数据源是什么,而不是使用sql作为源,我可以使用firebase数据库。然后,因为firebase数据库被包装在一个contentProvider中,我可以为其他应用程序公开一个URI并使contentProvider公开。我将不得不更多地了解这一点,但应该是可能的,因为contentProvider是网络或本地数据源的包装。但ContentProvider.query命令会返回一个游标,但不知道如何将光标移出检索的Firebase数据。

+0

其他应用程序未添加Firebase依赖关系,是什么意思? –

+0

我不介意他们是否有Firebase依赖。无论哪种方式都很好。我只是想要一种方法将我的Firebase数据库暴露给其他应用程序。 – j2emanue

回答

0

选项1将通过某种身份验证实现自定义后端,作为数据的访问点。

选项2将使您希望公开分享的所有数据可用,并在相关应用程序中获取对该数据库的引用。

选项1将更安全,更可靠,可从一个地方进行配置。选项2将更容易实施。

+0

关于选项2.你说在firebase仪表板中有一种方法可以让实时数据库暴露给任何人?如果是的话,我不知道该怎么做。我只是在规则中改变它?我认为firebase功能是每个应用程序? – j2emanue

+0

您必须能够将services.json添加到其他应用程序才能执行此操作。如果你想分享数据到外部应用程序(你不发布等),选择1是选择。无论哪种方式选项1将是一个更可持续的系统 –

+0

它刚刚以另一种方式来到我身上。因为contentProvider只是一个抽象,并不关心数据源是什么,而不是使用sql作为源,我可以使用firebase数据库。然后,因为firebase数据库被包装在一个contentProvider中,我可以为其他应用程序公开一个URI并使contentProvider公开。我将不得不看更多,但应该是可能的,因为contentProvider是多个数据源的包装,无论是网络,本地SQL。你可以让查询命令返回任何我认为的东西。 – j2emanue

相关问题