我在 React Native 应用中使用 Firebase,并使用 Facebook token 进行身份验证。它与实时数据库配合得很好。 但不是Firestore。当我调用 collection.get、set 或 add 时,我收到了此错误,该错误没有被我的处理程序捕获,而是转储到控制台中。
(node:15795) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): TypeError: k.setTimeout is not a function
我也尝试作为独立脚本作为 node t_firebase.js
运行。
我安装了软件包
npm install firebase
npm install firestore
我使用的是 Node 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 片段更多细节。目前“firebase”SDK 不支持 Cloud Firestore,但计划在未来提供支持。请参阅https://github.com/firebase/firebase-js-sdk/issues/221了解更多详情。
关于node.js - FireStore - TypeError : k. setTimeout 不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46726615/