簡體   English   中英

在node.js下將Firebase參數與Google雲端存儲配合使用

[英]Using Firebase parameters with Google Cloud Storage under node.js

目前沒有node.js Firebase存儲客戶端(太糟糕了......),所以我轉向使用Firebase控制台中的參數的gcloud-node。

我嘗試着 :

var firebase = require('firebase');
var gcloud = require('gcloud')({
    keyFilename: process.env.FB_JSON_PATH,
    projectId: process.env.FB_PROJECT_ID
});

firebase.initializeApp({
    serviceAccount: process.env.FB_JSON_PATH,
    databaseURL: process.env.FB_DATABASE_URL
});

var fb = firebase.database().ref();

var gcs = gcloud.storage();

var bucket = gcs.bucket(process.env.FB_PROJECT_ID);

bucket.exists(function(err, exists) {
    console.log('err', err);
    console.log('exists', exists);
});

地點:

  • FB_JSON_PATH是為使用Firebase Server SDK而生成的JSON文件的路徑

  • FB_DATABASE_URL類似於https://app-a36e5.firebaseio.com/

  • FB_PROJECT_ID是Google控制台中firebase項目的名稱:“app-a36e5”

存儲桶的ID是FB_PROJECT_ID (在Firebase的控制台中,存儲選項卡顯示gs://app-a36e5.appspot.com)

當我運行此代碼時,我得到:

err null
exists false

但沒有其他錯誤。

我期待至少exists true

一些額外的信息:我可以查詢數據庫(所以我想JSON文件是正確的),我已經設置了如下存儲規則:

service firebase.storage {
  match /b/app-a36e5.appspot.com/o {
    match /{allPaths=**} {
      allow read: if true;
      allow write: if request.auth != null;
    }
  }
}

這樣存儲上的所有內容都是可讀的。

任何想法如何讓它工作? 謝謝。

這里的問題是您沒有正確命名存儲桶。 存儲桶初始化應該是:

var bucket = gcs.bucket('app-a36e5.appspot.com'); // full name of the bucket includes the .appspot.com

我假設process.env.FB_PROJECT_ID只是your-bucket部分,你需要獲得完整的桶名,而不僅僅是項目ID(盡管桶名可能是process.env.FB_PROJECT_ID + '.appspot.com' )。

此外,抱歉沒有提供與Firebase集成的存儲 - GCS擁有您已經找到的高質量庫(gcloud-node),我們認為這為開發人員提供了最佳故事(Firebase for Mobile,Google Cloud Platform for服務器端開發),並不想進一步渾水。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM