StorageInstance
firebaseを導入する際にFirebaseApp.configure()
メソッドでインスタンス化されるバケット名はfirebaseProjectのstorageで初めに取得されるバケットになる。ここからバケットのlocationなやバケット名を変更したい場合は別のstorageバケットを作成する必要があり、新しいバケットをインスタンス化しようとしたらProvided bucket:""does not match the Storage bucket of the current instance:""
というエラーが。インスタンスはAPIによってデフォルトのバケットで必ず行われるらしいので。storage()
を変更するとうまくいく。
記述
let storageRef = Storage.storage(url: "bucketName").reference()
最後に
エラー吐き出し口がこんな感じで、デフォルトがない場合storageクラスがstandardになってるものがインスタンス化される、クラスはgoogleCloudで簡単に変更可能。
FIRStorage.m
+ (instancetype)storageForApp:(FIRApp *)app {
if (app.options.storageBucket) {
NSString *url = [app.options.storageBucket isEqualToString:@""]
? @""
: [@"gs://" stringByAppendingString:app.options.storageBucket];
return [self storageForApp:app URL:url];
} else {
NSString *const kAppNotConfiguredMessage =
@"No default Storage bucket found. Did you configure Firebase Storage properly?";
[NSException raise:NSInvalidArgumentException format:kAppNotConfiguredMessage];
return nil;
}
}