dart_firebase_apis
🔥 為 Dart 生成的 Firebase API。還包含私人和未公開的 API。
- 星標
- 30
- 分支
- 9
- 最近推送(UTC)
- 2023年8月28日
- 專案狀態
- 已封存
原始 README
以下為英文專案原文快照,最新內容請造訪 GitHub。
Firebase API Client Libraries for Dart
This is based on the googleapis.dart repository but instead aimed at supporting Firebase related APIs only. Additionally, this adds support for several unlisted (but discoverable) Firebase APIs that are not listed on the official discovery API that googleapis.dart uses (and is currently limited to) as well as several private APIs (APIs that require an API key to view discovery information).
See ./generated/firebaseapis/README.md for information on all the currently supported APIs.
Usage Example
// Import the APIs you want to use
import 'package:firebaseapis/firebaseremoteconfig/v1.dart' as remote_config;
import 'package:firebaseapis/firebaserules/v1.dart' as firebase_rules;
// Import Auth client
import 'package:googleapis_auth/auth_io.dart' as auth;
// Get an Auth Client
final authClient = await auth.clientViaApplicationDefaultCredentials(scopes: [
remote_config.FirebaseRemoteConfigApi.cloudPlatformScope,
]);
// Call some APIs
final rc = remote_config.FirebaseRemoteConfigApi(authClient);
final config =
await rc.projects.getRemoteConfig('projects/<your-project-id>');
print(config.parameters);
print(config.parameters?.values.first.defaultValue);
print(config.parameters?.values.first.description);
print(config.parameters?.values.first.valueType);
final fr = firebase_rules.FirebaseRulesApi(authClient);
final rules =
await fr.projects.rulesets.list('projects/<your-project-id>');
print(rules.rulesets?.first.name);
print(rules.rulesets?.first.source?.files?.first.content);
Custom Request Headers
Custom request headers can be set by adding to requestHeaders:
import 'package:firebaseapis/src/user_agent.dart';
Future<void> main() async {
requestHeaders.addAll({
'cool-header': 'cool-value',
});
print(requestHeaders);
}
Contributing
This project uses Melos to manage the project and dependencies.
To install Melos, run the following command from your SSH client:
dart pub global activate melos
Next, at the root of your locally cloned repository bootstrap the projects dependencies:
melos bootstrap
The bootstrap command locally links all dependencies within the project without having to
provide manual dependency_overrides. This allows all
plugins, examples and tests to build from the local clone project.
You do not need to run
flutter pub getonce bootstrap has been completed.
Adding a new API
To add a new API and generate library code for it is fairly straightforward;
- Add the API to the
apislist in./config.yaml - Run
melos run config:downloadto update the downloaded discovery document JSON files that are in./discovery.- Note: several APIs require an API key to be able to read the discovery information. Set a
API_KEYenvironment variable before running the command to be able to download the discovery documents for these private APIs, e.g.API_KEY=<your-key-here> melos run config:download.
- Note: several APIs require an API key to be able to read the discovery information. Set a
- Run
melos run config:generateto generate new Dart library code for the API, which outputs to./generated/firebaseapis.
Maintained by Invertase.
分類
使用的依賴
依賴清單 1 項
- melos開發依賴
—
如何選擇適合專案的儲存庫?
先依使用情境篩選,再比較專案活躍情況,最後到原始儲存庫確認使用要求。
- 透過儲存庫名稱、作者或描述搜尋,再依技術分類縮小範圍。
- 綜合星標、分支與最近推送比較專案;星標反映社群關注,不保證品質。
- 使用前在 GitHub 確認 README、授權條款與 Issues。
來源與維護
“A repository is the most basic element of GitHub.”
GitHub Docs — About repositories ↗