FireStore – TypeError:k.setTimeout不是一个函数
我在React Native应用程序中使用Firebase,并使用Facebook令牌进行身份validation。 它适用于RealTime数据库。 但不是Firestore。 当我调用collection.get,设置或添加我得到这个错误,这是我的处理程序没有捕获,但只是倾倒在控制台。
(node:15795)UnhandledPromiseRejectionWarning:未处理的承诺拒绝(拒绝ID:1):TypeError:k.setTimeout不是函数
我也尝试作为一个独立的脚本运行node t_firebase.js
。
我安装了包
npm install firebase npm install firestore
我使用节点v6.11.4和npm 3.10.10,firestore 1.1.6,firebase 4.5.1
这是脚本:
var firebase = require("firebase"); require("firebase/firestore"); var config = { apiKey: "...", authDomain: "....firebaseapp.com", databaseURL: "https://....firebaseio.com", projectId: "...", storageBucket: "...", messagingSenderId: "..." }; firebase.initializeApp(config); testFirebase(); function testFirebase(){ console.log("testFirebase"); token="..."; var credential = firebase.auth.FacebookAuthProvider.credential(token); firebase.auth().signInWithCredential(credential) .then(function(val){testFirestore();}) .catch((error)=>{console.log("error:"+error);}); } function testFirestore(){ console.log("testFirestore"); var db = firebase.firestore(); var collection = db.collection("livros"); var docref = collection.add({ autor: "AdaLovelace", name: "blabla" }).then(function(val){ console.log("OK"); }).catch((error)=>{console.log("error:"+error);}); }
虽然你提到React Native,但是你的错误实际上是来自node.js,所以我不确定你在问什么环境。
- React Native – 由于缺陷,“firebase”npm模块目前不能与React Native一起使用。 有关更多详细信息和解决方法,请参阅https://github.com/firebase/firebase-js-sdk/issues/183 。
- Node.JS – 您可以使用“firebase-admin”SDK从Node.JS使用Cloud Firestore。 有关更多详细信息,请参阅https://firebase.google.com/docs/firestore/quickstart上的node.js片段。 Cloud Firestore目前不支持通过“firebase”SDK,但是这是在未来计划的。 有关更多详细信息,请参阅https://github.com/firebase/firebase-js-sdk/issues/221 。
从node.js使用firestore时遇到同样的问题