我需要在我的Android应用中实现在某段时间内尝试完整版的可能性。为此,我需要保存试用期结束日期。
我认为使用firebase可以保存一些设备ID和试用期的结束日期。
你能告诉我,firebase数据库是否可以在移动应用程序之外访问?例如,我可以使用邮递员发送http请求来更新试用结束日期吗?
我的应用程序没有任何用户身份验证。
答案 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