Ios 从不同的项目下载并使用存储在Firebase存储中的文件
我使用Firebase存储在FB中存储图像,我将下载URL保存在实时数据库中,并从存储中检索一些照片,我使用以下代码:Ios 从不同的项目下载并使用存储在Firebase存储中的文件,ios,swift,firebase,firebase-storage,Ios,Swift,Firebase,Firebase Storage,我使用Firebase存储在FB中存储图像,我将下载URL保存在实时数据库中,并从存储中检索一些照片,我使用以下代码: let storage = FIRStorage.storage() imageRefInDB.observeEventType(.Value, withBlock: { (snapshot) in // Get download URL from snapshot let downloadURL = snapshot.value
let storage = FIRStorage.storage()
imageRefInDB.observeEventType(.Value, withBlock: { (snapshot) in
// Get download URL from snapshot
let downloadURL = snapshot.value as! String
// Create a storage reference from the URL
let storageRef = storage.referenceForURL(downloadURL)
storageRef.dataWithMaxSize(1 * 1024 * 1024) { (data, error) -> Void in
if (error != nil) {
print(error.debugDescription)
} else {
let downloadedImage = UIImage(data: data!)
}
}
})
我的问题是我想用我的一些照片,在另一个Firebase项目。例如,下载URL将是:
在我当前的项目中,bucket是不同的,如:
当我尝试在当前的PROJECT2
中使用PROJECT1
文件时,出现以下错误:
reason: 'Provided bucket: PROJECT1.appspot.com does not match bucket specified in FIRApp configuration: PROJECT2.appspot.com
是否有一种方法可以从其他项目(如Firebase中的设置)下载这些文件,而无需通过常规URL下载来检索它们?
谢谢你的帮助 我试过一次,结果过得很不愉快。在我的例子中,我有两个不同的存储桶来存储我的图像,所以我必须找到另一个解决方案 如果只有一个bucket,可以尝试在
FIRApp
中配置该bucket:
let firOptions = FIROptions(googleAppID: googleAppID, bundleID: bundleID, GCMSenderID: GCMSenderID, APIKey: nil, clientID: nil, trackingID: nil, androidClientID: nil, databaseURL: databaseURL, storageBucket: storageBucket, deepLinkURLScheme: nil)
FIRApp.configureWithName("anotherClient", options: options)
let app = FIRApp(named: "anotherClient")
let storageRef = FIRStorage.storage(app: app!).reference()
取自,因此您可能需要修改它以满足您的需要
使用该应用程序,您可以像下载图像数据一样使用Firebase存储API
如果您有多个存储桶(如我所述),则您必须配置多个应用程序,或者(如我所做的)自行处理从下载URL下载图像(不使用Firebase存储API):
我试过一次,结果过得很不愉快。在我的例子中,我有两个不同的存储桶来存储我的图像,所以我必须找到另一个解决方案 如果只有一个bucket,可以尝试在
FIRApp
中配置该bucket:
let firOptions = FIROptions(googleAppID: googleAppID, bundleID: bundleID, GCMSenderID: GCMSenderID, APIKey: nil, clientID: nil, trackingID: nil, androidClientID: nil, databaseURL: databaseURL, storageBucket: storageBucket, deepLinkURLScheme: nil)
FIRApp.configureWithName("anotherClient", options: options)
let app = FIRApp(named: "anotherClient")
let storageRef = FIRStorage.storage(app: app!).reference()
取自,因此您可能需要修改它以满足您的需要
使用该应用程序,您可以像下载图像数据一样使用Firebase存储API
如果您有多个存储桶(如我所述),则您必须配置多个应用程序,或者(如我所做的)自行处理从下载URL下载图像(不使用Firebase存储API):
弗兰克是对的。将来,我们计划允许在中链接来自同一项目的其他bucket(例如,您可以有一个images bucket和一个backups bucket),但现在,您必须使用另一个
FIRApp
。Frank是正确的。将来,我们计划允许在中链接来自同一项目的其他bucket(例如,您可以有一个images bucket和一个backups bucket),但现在,您必须使用另一个FIRApp
。