FirebaseAESLib.Mobile
1.0.0
See the version list below for details.
dotnet add package FirebaseAESLib.Mobile --version 1.0.0
NuGet\Install-Package FirebaseAESLib.Mobile -Version 1.0.0
<PackageReference Include="FirebaseAESLib.Mobile" Version="1.0.0" />
<PackageVersion Include="FirebaseAESLib.Mobile" Version="1.0.0" />
<PackageReference Include="FirebaseAESLib.Mobile" />
paket add FirebaseAESLib.Mobile --version 1.0.0
#r "nuget: FirebaseAESLib.Mobile, 1.0.0"
#:package FirebaseAESLib.Mobile@1.0.0
#addin nuget:?package=FirebaseAESLib.Mobile&version=1.0.0
#tool nuget:?package=FirebaseAESLib.Mobile&version=1.0.0
// ============================= // FILE: README.md // =============================
FirebaseAESLib.Mobile
FirebaseAESLib.Mobile is a Xamarin-compatible library that uses AES encryption to securely interact with Firebase Realtime Database and Firestore using the Firebase REST API.
โ Features
- ๐ AES-256 encryption/decryption
- ๐ฅ Works with Firestore (via REST)
- ๐ Works with Realtime Database (via REST)
- ๐ฑ Compatible with Xamarin, MAUI, .NET Standard 2.0
- โ๏ธ No Admin SDK dependencies
๐ฆ Installation
# Create the project (if not already done)
dotnet new classlib -n FirebaseAESLib.Mobile -f netstandard2.0
cd FirebaseAESLib.Mobile
# Add required packages
dotnet add package System.Security.Cryptography.Algorithms
dotnet add package System.Text.Json
Or just include the .cs
files directly into your Xamarin shared project.
๐ง Configuration
Create a 256-bit AES key and IV, then Base64 encode them:
var key = Convert.ToBase64String(RandomNumberGenerator.GetBytes(32));
var iv = Convert.ToBase64String(RandomNumberGenerator.GetBytes(16));
Store them securely (e.g., in SecureStorage
or environment variables).
๐ Usage Example
using FirebaseAESLib.Mobile;
var aes = new AesEncryptor("base64-key", "base64-iv");
// Firestore
var firestore = new FirestoreRestClient("your-project-id", "your-api-key", aes);
await firestore.SetEncryptedAsync("users", "user1", new Dictionary<string, object>
{
{ "name", "Alice" },
{ "email", "alice@example.com" }
});
var result = await firestore.GetDecryptedAsync("users", "user1");
// Realtime Database
var realtime = new RealtimeRestClient("your-project-id", "optional-id-token", aes);
await realtime.SetEncryptedAsync("users/user2", new Dictionary<string, object>
{
{ "phone", "12345678" }
});
var realtimeResult = await realtime.GetDecryptedAsync("users/user2");
๐ Firebase Setup Required
Field | Source |
---|---|
Project ID | Firebase Console > Project Settings |
Web API Key | Firebase Console > Project Settings > General |
ID Token (optional) | Firebase Auth token for signed-in user |
To use Firebase Authentication:
- Sign in using REST API or Firebase SDK
- Get the
idToken
and pass it toRealtimeRestClient
๐ Files
AesEncryptor.cs
: AES logicFirestoreRestClient.cs
: Handles Firestore RESTRealtimeRestClient.cs
: Handles Realtime DB RESTHttpClientExtensions.cs
: AddsPatchAsync()
๐งช Roadmap / Coming Soon
- Token auto-refresh
- Firestore query support
- Support for structured (non-string) types
- Upload as NuGet package
โ License
MIT License
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- System.Security.Cryptography.Algorithms (>= 4.3.1)
- System.Text.Json (>= 9.0.6)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.