相关疑难解决方法(0)

使用 Firebase 获取 downloadURL 不断抛出错误“XMLHttpRequest 未定义”

当尝试获取刚刚上传到存储的图像的 downloadURL 时,我不断收到“XMLHttpRequest 未定义”消息。对这里发生的事情有什么想法吗?我可以检索元数据,但图像 url 未在方案中列出:/

节点:

import firebase, { storage } from './firebase';
const serviceAccount = require('./serviceAccountKey.json');
const admin = require('firebase-admin');
const app = express()
const dbUrl = "https://authentication.firebaseio.com"

admin.initializeApp({
  credential: admin.credential.cert(serviceAccount),
  databaseURL: dbUrl,
  storageBucket: 'authentication.appspot.com'
});

//Initalize bucket
const bucket = admin.storage().bucket();

......
bucket.upload(imageUrl).then(result => {
        const file = result[0];
        return file.getMetadata();
      }).then(results => {
          const ref = storage.ref('users/' + userRecord.uid + '/image').downloadURL();
          console.log(ref)
          //const metadata = results[0];
          //console.log('metadata=', metadata.mediaLink);
          //firebase.database().ref('users/' + userRecord.uid + '/image').set(metadata.mediaLink);
      }).catch(error => { …
Run Code Online (Sandbox Code Playgroud)

node.js firebase firebase-realtime-database firebase-storage

5
推荐指数
2
解决办法
3910
查看次数

如何在 Firebase 函数中获取下载 URL

使用 Firebase Storage 存储图像时,图像的 URL 如下所示: https ]?alt=media&token=[令牌]

我想得到这个网址。

根据thisthisthisthis,我需要使用该.getDownloadURL()方法,该方法位于“存储引用”..但可用对象的文档与实际对象不符。

当我尝试访问.getDownloadURL()下面代码中文档建议的对象上的方法时,我收到了各种未找到属性的错误。

        const admin = require('firebase-admin');
        admin.initializeApp();

        admin
        .storage()
        .bucket()
        .upload(imageToBeUploaded.filepath, {
            destination: storageFolder,
            resumable: false,
            metadata: {
                metadata: {
                contentType: imageToBeUploaded.mimetype
                }
        }
        })
        .then((taskSnapshot) => {
            // HOW DO I GET THE DOWNLOADABLE URL 
        })
Run Code Online (Sandbox Code Playgroud)

我试过以下:

taskSnapshot[1].getDownloadURL(),

admin.storage().ref(storageFolder+'/'+imageFileName).getDownloadURL(),

admin.storageRef(storageFolder+'/'+imageFileName).getDownloadURL(),

admin.storage().ref().child(storageFolder+'/'+imageFileName).getDownloadURL(),

.. 和一堆其他人。

反复试验没有找到具有该方法的“storageRef”,

如何获取我的图片的可下载网址?

firebase google-cloud-functions firebase-storage firebase-admin

3
推荐指数
1
解决办法
2969
查看次数

在 Firebase 云存储中加载预览时出错

我已将图像上传到 Cloud Storage ,但在显示图像时遇到问题。在存储概述中,我收到加载预览时出错。

\n\n

当我将图像链接添加到 Cloud Firestore 中的对象时,我还没有完成这一步,但我不确定这是否只是由于文件类型(HEIC,但图像/jpeg)所致,或者是否有其他原因我的代码有问题:

\n\n

存储概述:

\n\n

在此输入图像描述

\n\n

图片(点击时):

\n\n

显示问号。

\n\n

在此输入图像描述

\n\n

图像响应(react-native-image-picker):

\n\n
 {height: 3024, origURL: "assets-library://asset/asset.HEIC?id=CC95F08C-88C3-4012-9D6D-64A413D254B3&ext=HEIC", fileName: null, data: "/9j/4AAQSkZJRgABAQAASABIAAD/4QBMRXhpZgAATU0AKgAAAA\xe2\x80\xa6c4z+P04wa+twuG5Yq628/OR1QqSdtLLqrrTe32L79l63P/9k=", width: 4032, \xe2\x80\xa6}\nheight: 3024\norigURL: "assets-library://asset/asset.HEIC?id=CC95F08C-88C3-4012-9D6D-64A413D254B3&ext=HEIC"\nfileName: null\ndata: "/9j/4AAQSkZJRgABAQAASABIAAD/4QBMRXhpZgAATU0AKgAAAA"\nwidth: 4032\ntype: "image/jpeg"\nfileSize: 13712705\nisVertical: false\nuri: "file:///Users/jefflewis/Library/Developer/CoreSimulator/Devices/6B2E3DBA-217F-46B5-AAF2-C1AA540B408E/data/Containers/Data/Application/4CD01B23-6649-4222-BF0E-CB5959732A3E/Documents/images/BECF69B3-9AFF-4CBB-9648-331EF623271C.jpg"\n__proto__: Object\n
Run Code Online (Sandbox Code Playgroud)\n\n

代码:

\n\n
// Image URI\nconst imageURI = action.newRecipe.image.uri;\n\n// Image Type\nconst imageType = action.newRecipe.image.type;\n\n// Image Blob\nconst blob = new Blob([imageURI], {type : `${imageType}`});\nconsole.log(\'Adding Blob\');\nconsole.log(blob.data);\n\n// Firebase Cloud Storage File Path Ref (UUID Generates Randomized File Name)\nconst filePathRef = imagesRef.child(uuidv4());\n\n// Metadata\nconst …
Run Code Online (Sandbox Code Playgroud)

google-cloud-storage firebase firebase-storage google-cloud-firestore

3
推荐指数
2
解决办法
7972
查看次数

从可调用的 https 云函数将图像上传到 Firebase Storage

我想从可调用的 https 云函数将图像上传到 Firebase Storage,但我不知道该怎么做。

const functions = require('firebase-functions');

const admin = require('firebase-admin');

admin.initializeApp();

const storageBucket = admin.storage().bucket('gs://xxxxx.appspot.com');

exports.test_upload = functions.https.onRequest(async (request, response) => {

    var base64Img = "data:image/jpeg;base64,/9j/4AAQSkZJRg...AoNDQoIC";

    let filename = new Date().getTime() + '.jpg';

    await storageRef.child('/destination/'+filename).putString(base64Img, 'data_url').then(function(snapshot) {

        snapshot.ref.getDownloadURL().then(async (url) => { 
            
            console.log(url);

        });

    });


    response.status(200).send("Done!");

});
Run Code Online (Sandbox Code Playgroud)

你能帮我理解,该怎么做吗?

太感谢了

更新:2020/07/22

const functions = require('firebase-functions');

const admin = require('firebase-admin');

admin.initializeApp();

const storageBucket = admin.storage().bucket('perfume-group.appspot');

const {Storage} = require('@google-cloud/storage');

const storage = new Storage({keyFilename: 'perfume-group-key.json'});

exports.test_upload = functions.https.onRequest(async (request, response) …
Run Code Online (Sandbox Code Playgroud)

node.js google-cloud-storage firebase google-cloud-functions

3
推荐指数
1
解决办法
4228
查看次数

使用文件流和Firebase云功能+云存储上传文件

我使用Firebase云功能为QR文件上传编写了以下代码

const functions = require('firebase-functions');
const qrcode = require('qrcode')
const admin = require('firebase-admin');
const spawn = require('child-process-promise').spawn;
const serviceAccount = require("./secret.json");
const gcs = require('@google-cloud/storage')();

admin.initializeApp(functions.config({
  credential: admin.credential.cert(serviceAccount),
  storageBucket: "https://SECRET.firebaseio.com"
}));


exports.qrcode = functions.https.onRequest((req, res) => {
  const storage = admin.storage().bucket();
  const dummyFile = storage.file('dummy.png')
  new Promise ((resolve, reject) => qrcode.toFileStream(
    dummyFile.createWriteStream()
      .on('finish', resolve)
      .on('error', reject),
    'DummyQR'))
    .then(console.log("success")) //Doing stuff here later
    .catch(console.log)
  res.send("<script>window.close();</script>")
});
Run Code Online (Sandbox Code Playgroud)

根据文档,我应该能够通过简单地调用admin.storage().bucket();https://firebase.google.com/docs/storage/admin/start)连接到存储桶,但是出现以下错误:

Error: Error occurred while parsing your function triggers.

Error: Bucket …
Run Code Online (Sandbox Code Playgroud)

google-cloud-storage firebase google-cloud-functions firebase-admin

2
推荐指数
1
解决办法
1764
查看次数