【发布时间】:2021-07-05 14:19:09
【问题描述】:
我有一个简单的加密货币应用程序,它使用 API 来获取价格。我正在使用 Firestore 存储我的 API 密钥,并且我的应用在启动时从 Firestore 检索我的 API 密钥。我的 API 密钥是我的 Firestore 中唯一的数据。由于我的应用程序不允许用户创建配置文件/帐户,因此我的规则中不包含用户身份验证。我的 Firestore 安全规则是:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /Data/{Data} {
allow read: if true;
}
}
}
是否有更好的安全规则来提高安全性或者这些规则是否足够好?
编辑
下面的“url-builder.dart”文件是我从 Firestore 检索我的 API 密钥的方式。然后我将我的 API 密钥插入到最后的 URL 中。
import 'package:cloud_firestore/cloud_firestore.dart';
class URLBuilder {
URLBuilder(this.cryptoCurrency, this.currency, this.periodValue);
String cryptoCurrency;
String currency;
String periodValue;
String _pricesAndTimesURL;
String get pricesAndTimesURL => _pricesAndTimesURL;
Future<String> getApiKey() async {
return FirebaseFirestore.instance
.collection("Data")
.doc("APIKeyDocument")
.get()
.then((value) {
return value.data()["Key"];
});
}
Future<void> buildURL() async {
String apiKey = await getApiKey();
_pricesAndTimesURL =
'https:$urlStart/markets/kraken/$cryptoCurrency$currency/ohlc?periods=$periodValue&apikey=$apiKey';
}
}
【问题讨论】:
标签: flutter google-cloud-firestore firebase-security