AdamE.Firebase.iOS.Storage
12.6.0
dotnet add package AdamE.Firebase.iOS.Storage --version 12.6.0
NuGet\Install-Package AdamE.Firebase.iOS.Storage -Version 12.6.0
<PackageReference Include="AdamE.Firebase.iOS.Storage" Version="12.6.0" />
<PackageVersion Include="AdamE.Firebase.iOS.Storage" Version="12.6.0" />
<PackageReference Include="AdamE.Firebase.iOS.Storage" />
paket add AdamE.Firebase.iOS.Storage --version 12.6.0
#r "nuget: AdamE.Firebase.iOS.Storage, 12.6.0"
#:package AdamE.Firebase.iOS.Storage@12.6.0
#addin nuget:?package=AdamE.Firebase.iOS.Storage&version=12.6.0
#tool nuget:?package=AdamE.Firebase.iOS.Storage&version=12.6.0
AdamE.Firebase.iOS.Storage
.NET bindings for Cloud Storage for Firebase on Apple platforms, for use from .NET iOS and Mac Catalyst apps.
What this package provides
This package binds the Cloud Storage for Firebase Apple SDK surface exposed in the Firebase.Storage namespace. It provides access to Storage, storage references, uploads, downloads, metadata, listing, task observation, retry controls, and emulator configuration.
Use this package when you need:
- file or data uploads to Cloud Storage for Firebase
- file downloads, download URLs, metadata reads, and metadata updates
- storage reference navigation by path or URL
- upload and download task observation and management
Most apps using this package also reference AdamE.Firebase.iOS.Core for Firebase app initialization.
Official Firebase documentation comes first
These packages are thin .NET bindings over the official Firebase Apple SDKs.
Use the official Firebase documentation as the starting point for:
- Firebase configuration and platform setup
- feature usage and behavioral guidance
- troubleshooting and best practices
These bindings primarily:
expose the native Firebase Apple SDK APIs to .NET through C#
deliver the packaged native Firebase SDK artifacts through NuGet
Firebase documentation: https://firebase.google.com/docs
Firebase Apple platform setup: https://firebase.google.com/docs/ios/setup
Cloud Storage for Firebase documentation: https://firebase.google.com/docs/storage/ios/start
Supported target frameworks
This package is intended for Apple platform TFMs such as:
net9.0-iosnet10.0-iosnet9.0-maccatalystnet10.0-maccatalyst
When multi-targeting, condition the package reference so it only restores for Apple targets.
<ItemGroup Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'ios' Or $([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'maccatalyst'">
<PackageReference Include="AdamE.Firebase.iOS.Storage" Version="12.6.0" />
</ItemGroup>
Installation
dotnet add package AdamE.Firebase.iOS.Storage
Basic usage
This package does not itself perform Firebase app initialization; call Firebase.Core.App.Configure() from the app before using Firebase feature APIs.
using System;
using Firebase.Core;
using Firebase.Storage;
using Foundation;
App.Configure();
var uploadData = NSData.FromString("hello", NSStringEncoding.UTF8);
var storage = Storage.DefaultInstance;
var reference = storage.GetReferenceFromPath("uploads/profile.jpg");
var metadata = new StorageMetadata { ContentType = "image/jpeg" };
reference.PutData(uploadData, metadata, (uploadedMetadata, error) =>
{
if (error is not null)
{
Console.WriteLine(error.LocalizedDescription);
return;
}
reference.GetDownloadUrl((url, downloadError) =>
{
Console.WriteLine(url);
});
});
Common companion packages
AdamE.Firebase.iOS.Core- Firebase app initialization.AdamE.Firebase.iOS.Auth- commonly used when Cloud Storage security rules depend on Firebase Authentication.
Firebase app configuration
Firebase apps commonly require app-specific configuration from your own Firebase project, such as GoogleService-Info.plist.
Keep app-specific Firebase configuration in the application project or sample app, not in reusable library projects.
If the official Firebase docs for this feature require additional setup, follow those docs first.
Package versioning rules (important)
Because Firebase Apple SDKs are packaged as native xcframeworks and distributed here through NuGet, consumers should explicitly pin package versions.
Due to packaging differences between CocoaPods and NuGet, it is highly recommended that applications follow these rules:
- Keep the MAJOR.MINOR version aligned across all Firebase packages in the app, for example
12.6.*.*. - Then use the latest available PATCH.REVISION for each individual package.
Example:
<ItemGroup>
<PackageReference Include="AdamE.Firebase.iOS.Core" Version="12.6.0.3" />
<PackageReference Include="AdamE.Firebase.iOS.Auth" Version="12.6.0.2" />
<PackageReference Include="AdamE.Firebase.iOS.CloudFirestore" Version="12.6.0.5" />
</ItemGroup>
Avoid mixing mismatched Firebase package lines such as 12.6.x.x with 12.5.x.x, or 12.x.x.x with 11.x.x.x. Doing so can lead to native dependency conflicts, duplicate symbols, runtime failures, or other undefined behavior.
Notes on native dependency conflicts
Google and Firebase Apple SDKs share native dependencies. Avoid mixing multiple unrelated binding packages that embed overlapping Google/Firebase native SDK binaries in the same app unless you are certain they are compatible.
API surface notes
The public namespace is Firebase.Storage. API names closely mirror the native Cloud Storage for Firebase SDK surface and expose Apple-native concepts such as NSData, NSUrl, NSError, metadata objects, and observable tasks.
Repository / support
- Repository: https://github.com/AdamEssenmacher/GoogleApisForiOSComponents
- Issues: https://github.com/AdamEssenmacher/GoogleApisForiOSComponents/issues
Support the project
Keeping Firebase Apple bindings current for .NET requires ongoing work across SDK updates, native dependency changes, and API surface maintenance.
If this package is valuable in your app or organization, sponsorship helps support continued maintenance and updates.
- GitHub Sponsors: https://github.com/sponsors/AdamEssenmacher
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net9.0-ios18.0 is compatible. net9.0-maccatalyst18.0 is compatible. net10.0-ios was computed. net10.0-ios26.0 is compatible. net10.0-maccatalyst was computed. net10.0-maccatalyst26.0 is compatible. |
-
net10.0-ios26.0
- AdamE.Firebase.iOS.Core (>= 12.6.0)
- AdamE.Google.iOS.GTMSessionFetcher (>= 3.5.0 && < 5.0.0)
-
net10.0-maccatalyst26.0
- AdamE.Firebase.iOS.Core (>= 12.6.0)
- AdamE.Google.iOS.GTMSessionFetcher (>= 3.5.0 && < 5.0.0)
-
net9.0-ios18.0
- AdamE.Firebase.iOS.Core (>= 12.6.0)
- AdamE.Google.iOS.GTMSessionFetcher (>= 3.5.0 && < 5.0.0)
-
net9.0-maccatalyst18.0
- AdamE.Firebase.iOS.Core (>= 12.6.0)
- AdamE.Google.iOS.GTMSessionFetcher (>= 3.5.0 && < 5.0.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on AdamE.Firebase.iOS.Storage:
| Package | Downloads |
|---|---|
|
Plugin.Firebase.Storage
The plugin includes cross-platform APIs for Firebase Storage. |
GitHub repositories (1)
Showing the top 1 popular GitHub repositories that depend on AdamE.Firebase.iOS.Storage:
| Repository | Stars |
|---|---|
|
TobiasBuchholz/Plugin.Firebase
Wrapper around the native Android and iOS Firebase Xamarin SDKs
|
| Version | Downloads | Last Updated |
|---|---|---|
| 12.6.0 | 34 | 4/18/2026 |
| 12.5.0.4 | 9,993 | 12/24/2025 |
| 12.5.0.3 | 212 | 12/24/2025 |
| 12.5.0.2 | 210 | 12/24/2025 |
| 12.5.0.1 | 916 | 12/14/2025 |
| 12.5.0 | 479 | 12/11/2025 |
| 12.4.0 | 278 | 10/30/2025 |
| 12.3.0 | 350 | 9/21/2025 |
| 12.2.0 | 303 | 9/20/2025 |
| 12.1.0 | 307 | 9/19/2025 |
| 12.0.0 | 190 | 9/12/2025 |
| 11.15.0 | 197 | 9/12/2025 |
| 11.14.0 | 250 | 9/7/2025 |
| 11.13.0 | 234 | 9/7/2025 |
| 11.12.0 | 210 | 9/6/2025 |
| 11.11.0 | 201 | 9/6/2025 |
| 11.10.0.2 | 388 | 8/31/2025 |
| 11.10.0.1 | 270 | 8/30/2025 |
| 11.10.0 | 1,448 | 4/2/2025 |
| 11.9.0 | 257 | 4/1/2025 |