可以从应用程序外部访问firebase数据库

时间:2018-06-11 10:00:19

标签: android firebase firebase-realtime-database

我需要在我的Android应用中实现在某段时间内尝试完整版的可能性。为此,我需要保存试用期结束日期。

我认为使用firebase可以保存一些设备ID和试用期的结束日期。

你能告诉我,firebase数据库是否可以在移动应用程序之外访问?例如,我可以使用邮递员发送http请求来更新试用结束日期吗?

我的应用程序没有任何用户身份验证。

2 个答案:

答案 0 :(得分:2)

是的firebase数据库可以通过其他sdk(如javascript)在app外访问。 但您必须设置规则,以便无需身份验证即可读取。 此外,如果您想控制谁可以写入数据库,您需要在firebase中进行一些身份验证,以便您可以应用写入规则。

如果您不想添加任何类型的身份验证,那么您将公开数据库以供任何人编写。

答案 1 :(得分:1)

是的,您可以使用云功能通过HTTPS呼叫您的Firebase后端,请参阅https://firebase.google.com/docs/functions/http-events

在此云功能中,您可以更新实时数据库的一个或多个特定节点。

您可以在此官方视频中找到有关如何通过HTTP云功能从数据库中读取数据的一个很好的示例:https://www.youtube.com/watch?v=7IkUgCLr5oA

您可以通过GET调用它来调整它,并将时间戳作为查询字符串参数传递,并在函数中使用此时间戳写入数据库。类似的东西:

exports.updateTrialPeriodDate = functions.https.onRequest((req, res) => {
   const timestamp = req.query.ts;
   consta trialPeriodDate = new Date(timestamp);

   periodDate = {trialPeriodDate: trialPeriodDate};

   admin.database().ref('/....').update(periodDate)  //  <- set the correct path where you want to write
     .then(() => {
         res.status(200).send("success");
     })
     .catch(error => {
        console.log(error);
        res.status(500).send(err);
     });

});

然后您将按如下方式调用此函数:

https://us-central1-<your-project-id>.cloudfunctions.net/updateTrialPeriodDate?ts=1528718473