我想从Firebase存储中下载整个文件夹.单个文件可以通过如下获取DownloadURL来下载.但它对文件夹不起作用.
var storageRef = firebase.storage().ref();
// Create a reference to the file we want to download
var starsRef = storageRef.child(path);
// Get the download URL
starsRef.getDownloadURL().then(function(url) {
// Insert url into an <img> tag to "download"
ImageUrl = url;
console.log(ImageUrl);
}).catch(function(error) {
switch (error.code) {
case 'storage/object_not_found':
// File doesn't exist
break;
case 'storage/unauthorized':
// User doesn't have permission to access the object
break;
case 'storage/canceled':
// User canceled the upload
break;
case 'storage/unknown':
// Unknown error occurred, inspect the …Run Code Online (Sandbox Code Playgroud) 有没有办法将多个文件上传到Firebase存储.它可以在单次尝试中上传单个文件,如下所示.
fileButton.addEventListener('change', function(e){
//Get file
var file = e.target.files[0];
//Create storage reference
var storageRef = firebase.storage().ref(DirectryPath+"/"+file.name);
//Upload file
var task = storageRef.put(file);
//Update progress bar
task.on('state_changed',
function progress(snapshot){
var percentage = snapshot.bytesTransferred / snapshot.totalBytes * 100;
uploader.value = percentage;
},
function error(err){
},
function complete(){
var downloadURL = task.snapshot.downloadURL;
}
);
});
Run Code Online (Sandbox Code Playgroud)
如何将多个文件上传到Firebase存储.
如Firebase文档中所述,我们可以按如下方式检索FCMToken.
NSString *fcmToken = [FIRMessaging messaging].FCMToken;
NSLog(@"FCM registration token: %@", fcmToken);
Run Code Online (Sandbox Code Playgroud)
但是上面返回编译时错误Property 'FCMToken' not found on object of type 'FIRMessaging *'.
如何获得FCMToken?
这个问题属于fabricJS和canvas.在下面的案例中,检查是否有任何对象属性为true(obj.background == true).画布上可以有几个图像.在第一个对象检测之后,我想终止循环.我是怎么做到的 我曾经使用return false;但不起作用.这是功能.
canvas.forEachObject(function(obj){
if(obj.isType('image') && obj.hasOwnProperty('background')){
if(!obj.background == true){
alert("true");
return false;
}
}
});
Run Code Online (Sandbox Code Playgroud) 是否有任何选项可以检测fabricJS上的更改?我使用以下程序保存画布。然后,当再次保存它时,我必须先检测画布上是否有任何更改,然后再进行保存。这该怎么做?
var printImg = canvas.toDataURL({
format: 'png',
multiplier: multi,
left: (canvas.width - maskWidth)/2,
height: maskOriHeight/multi,
width: maskOriWidth/multi
});
Run Code Online (Sandbox Code Playgroud) 我使用以下方法将对象添加到 Firebase 数据库。
$url = "https://myfb.firebaseio.com/api/types/ty/packs.json";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $userData);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded'));
$jsonResponse = curl_exec($ch);
if(curl_errno($ch))
{
echo 'Curl error: ' . curl_error($ch);
}
curl_close($ch);
Run Code Online (Sandbox Code Playgroud)
它将$userData保存在我们数据库中唯一生成的节点下,如下所示。
我想将我的自定义密钥提供给该节点。我如何做到这一点?
我正在尝试通过 Google 云功能为 iOS 发送推送通知,但它返回The provided registration token is not registered. 但是我已经通过调试我的应用程序进行了检查,并且 FCM 注册令牌是正确的。之后,我尝试通过提供 FCM 令牌通过 Firebase 控制台向单个设备发送推送通知,但由于Unregistered registration token. 这是如何发生的,因为设备 FCM 令牌没有问题?
objective-c apple-push-notifications ios firebase firebase-cloud-messaging
我使用以下方法来填充SVG路径的颜色。有没有一种添加动画的方法。从中心开始填充并扩散。
$(function(){
$("#btn-test1").on("click",function(){
$("#path1").attr("fill","#0000");
});
});
Run Code Online (Sandbox Code Playgroud) 我正在使用Firebase开发一个ios应用程序,它拥有庞大的用户.我需要根据用户的响应更新Firebase数据库中的特定字段值.有没有办法在不读取当前值的情况下将特定字段的值增加一(1).当几个用户试图同时增加同一字段的价值时会发生什么?
尝试将以下内容保存image到本地存储。
if let imageData: Data = UIImagePNGRepresentation(self.emitterImageView.image!) {
try! imageData.write(to: savedImagePath, options: [])
}
Run Code Online (Sandbox Code Playgroud)
但由于以下错误而崩溃。
线程 1:致命错误:“尝试!” 表达式意外引发错误:Error Domain=NSCocoaErrorDomain Code=4“文件“PHDEmitterImage1.png”不存在。UserInfo={NSFilePath=/private/var/mobile/Containers/Data/Application/41D876EC-7D65-4AB1-820E-EDE46FAE8675/tmp/PHDEmitterBackup/PHDEmitterImage1.png, NSUnderlyingError=0x15bf21792文件或目录"}}
问题出在哪里?
保存的图像路径是 file:/private/var/mobile/Containers/Data/Application/41D876EC-7D65-4AB1-820E-EDE46FAE8675/tmp/PHDEmitterBackup/PHDEmitterImage1.png
自定义路径
func emitterBackupDirectoryPath() -> String? {
let dataPath = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first?.absoluteString
//let dataPath = URL(fileURLWithPath: documentsDir).appendingPathComponent("/PHDEmitterBackup").absoluteString
//let dataPath = documentsDir?.appendingPathComponent("/PHDEmitterBackup").absoluteString
if !FileManager.default.fileExists(atPath: dataPath!) { //if does not exist
do {
try FileManager.default.createDirectory(atPath: dataPath!, withIntermediateDirectories: false, attributes: nil) //Create folder
} catch {
}
}
return dataPath
}
Run Code Online (Sandbox Code Playgroud)