2017-03-16 31 views
21

Bulut Fonksiyonlar sadece son zamanlarda piyasaya sürüldü ve ben yüklemek taze yönergeleri takip ediyorum Firebase kullanarak node.js için Bulut Fonksiyonlar ile. Ben kurduktan Here is the "Get Started" page.'functions.config() 'Firebase için

' kullanılamaz npm install -g firebase-tools "ve tüm dosyalarım projemde. WebStorm 2016.3 ve Node.JS v6.10.0 kullanıyorum.

Firebase login ve firebase init işlevlerinin kurulu ve kurulumunu yaptım. Ayarım Here is my set up.

Paketim Kod işin

{ 
    "name": "functions", 
    "description": "Cloud Functions for Firebase", 
    "dependencies": { 
    "firebase-admin": "^4.1.2", 
    "firebase-functions": "^0.5" 
    }, 
    "private": true 
} 

Bunlar ilk iki satır age.json.

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

Ama sonra bu satırı çalıştırmayı denediğinizde ...

admin.initializeApp(functions.config().firebase); 

bu hatayı alıyorum.

Error: functions.config() is not available. Please use the latest version of the Firebase CLI to deploy this function. 
    at init (/Users/.../functions/node_modules/firebase-functions/lib/config.js:46:19) 
    at Object.config (/Users/.../functions/node_modules/firebase-functions/lib/config.js:29:9) 
    at Object.<anonymous> (/Users/.../functions/index.js:11:31) 
    at Module._compile (module.js:570:32) 
    at Object.Module._extensions..js (module.js:579:10) 
    at Module.load (module.js:487:32) 
    at tryModuleLoad (module.js:446:12) 
    at Function.Module._load (module.js:438:3) 
    at Module.runMain (module.js:604:10) 
    at run (bootstrap_node.js:394:7) 

Burada ne eksik?

cevap

24

Eğer benim gibi ve işlevlerinizi yerel olarak çalıştırmaya çalışırken bu hatayı alıyorsanız, bu hatayı alıyorsunuzdur, çünkü functions.config() yalnızca Bulut İşlevleri çalışma zamanında kullanılabilir. Konuşlandırmadan önce işlevlerinizi test etmeye çalışıyorsanız, bunun nasıl yapılacağı ile ilgili belgelerin bağlantısı şöyledir: https://firebase.google.com/docs/functions/unit-testing#mocking_database_writes

+3

Benim için başka çevre değişkenleri kullanıyordu.Yanıtı, yapılandırılan kodla yalnızca çalıştığı için gerçek yapılandırma dosyasını kopyalayan yerel bir çalışma zamanı yapılandırması oluşturduğunu söyleyen bitişik sayfada yanıt buldum. Yerel için bu firebase işlevlerini çalıştırın: config: get> .runtimeconfig.json'. –

+0

Bu, dağıtımdan önce yerel olarak nasıl test edileceğimi belirlememde bana yardımcı oldu: https://firebase.google.com/docs/functions/local-emulator – cking24343

+0

@MartavisP. günümü kurtardın! Önemli not: .runtimeconfig.json, "işlevler" klasörünün içine yerleştirilmeli, bunun nedeni de vardı çünkü başlangıçta köke yerleştirildi. –

6

En yeni firebase-tools yüklemeye çalışmış olsanız bile, firebase CLI'nin eski bir sürümüne sahip olabilirsiniz.

firebase --version'u çalıştırarak denetleyebilirsiniz. Bu en az 3.5.0 deme. Aksi takdirde, npm install -g firebase-tools'u tekrar çalıştırmak isteyeceksiniz, bu da umarım bir şeyler düzeltmelisiniz.

firebase --version ürününüzün yanlış sürümünü göstermeye devam ediyorsanız, yanlışlıkla birden çok firebase-tools sürümünün yüklü olup olmadığını kontrol etmek isteyeceksiniz.

+0

Evet, 3.5.0 sahibim. Etrafa bakıp Firebase'i kaldırabilir miyim ve tekrar yükleyip yükleyemeyeceğimi göreceğim. Ayrıca, firebase.json dosyam boş, bu doğru mu? –

+0

Bu dosyanın boş olmasını beklemiyordum. Firebase.json'da hiçbir değer olmadığında bile, {{}} içerecektir. Firebase init'i tekrar çalıştırmayı deneyebilirsiniz. –

+0

Benim için işe yaramadı. config.json dosyasını elle yazmam gerekiyordu. Https://github.com/GoogleCloudPlatform/cloud-functions-emulator/issues/74 – ByteArtisan

1

Firebase dağıtımını yanlış yönlendiriciden çalıştırıyordum. Umarım bu birileri zamandan kurtarabilir.