Angular 5 + Firebase:Namespace' firebase.auth'没有导出的成员' IdTokenResult'

时间:2018-06-05 20:34:15

标签: firebase firebase-cloud-messaging angular5 google-cloud-functions angular-cli-v6

我目前正在使用Angular 5处理Web项目,我希望集成Firebase云消息传递以在app上发送通知,但是我遇到了很多问题,我试图修复它们。现在有两个我无法解决的错误:Namespace 'firebase.auth'functions

错误如下:

ERROR in node_modules/angularfire2/auth/auth.d.ts(12,45): error TS2694: Namespace 'firebase.auth' has no exported member 'IdTokenResult'.
node_modules/angularfire2/firebase.app.module.d.ts(2,42): error TS2305: Module '"/Users/gerardtalla/dev/workspaces/ws-parcaune/pms/pms-frontend-2018/node_modules/firebase/app/index"' has no exported member 'functions'.

我该如何解决?我正在使用

Angular 5

" firebase":" 4.8.0"

" angularfire2":" ^ 5.0.0-rc.5"

" @ angular / cli":" ~1.7.3"

如果有人有想法请不要犹豫,请与我分享。非常感谢。

8 个答案:

答案 0 :(得分:4)

只需使用" angularfire2":" 5.0.0-rc.5"而不是" angularfire2":" ^ 5.0.0-rc.5"

答案 1 :(得分:1)

这是版本兼容的问题,你可以阅读 AngularFirebase2 Changelog

5.0.0-rc.9(2018-05-16)

auth:将用户和idTokenResult Observable添加到AngularFireAuth(#1642)(31045a9)

答案 2 :(得分:1)

“angularfire2”:“5.0.0-rc.6”,  “firebase”:“4.9.0”,

我通过在package.json中进行此更改来解决此问题。

答案 3 :(得分:1)

主要是版本问题

在package.json中进行此更改

  • “ angularfire2”:“ 5.0.0-rc.6”,
  • “ firebase”:“ 4.9.0”

这些应该可以解决问题

答案 4 :(得分:1)

npm i-保存firebase @ latest angularfire2 @ latest

尝试一下

答案 5 :(得分:1)

我用这个固定了。

"firebase": "^5.7.0",
"angularfire2": "5.0.0-rc.6",

答案 6 :(得分:0)

我遇到了同样的错误,删除了node_modules中的文件夹并重新安装了Firebase,解决了我的问题。

import java.io.StringWriter;
import java.util.ArrayList;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;

import org.springframework.util.LinkedCaseInsensitiveMap;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;

public class ConvertDBToXMLProcessor implements Processor {

    public void process(List body) {

        if (body instanceof ArrayList) {
            ArrayList<LinkedCaseInsensitiveMap> rows = (ArrayList) body;

            DocumentBuilder builder = null;
            builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
            Document document = builder.newDocument();
            Element rootElement = document.createElement("DBResultSet");

            for (LinkedCaseInsensitiveMap row : rows) {
                Element newNode = document.createElement("Row");
                row.forEach((key, value) -> {
                    if (value != null) {
                        Element newKey = document.createElement((String) key);
                        newKey.setTextContent(value.toString());
                        newNode.appendChild(newKey);
                    }
                });
                rootElement.appendChild(newNode);
            }
            document.appendChild(rootElement);


            /* 
            * If you need return string view instead org.w3c.dom.Document
            */
            StringWriter writer = new StringWriter();
            StreamResult result = new StreamResult(writer);
            DOMSource domSource = new DOMSource(document);
            TransformerFactory tf = TransformerFactory.newInstance();
            Transformer transformer = tf.newTransformer();
            transformer.setOutputProperty(OutputKeys.INDENT, "yes");
            transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "no");
            transformer.transform(domSource, result);

            // return document
            // return writer.toString()

        }
    }
}

主要是版本问题,请使用npm install --save firebase 检查版本,或尝试将其降级到以下错误应该消失

  • 角度:4
  • angularfire2:“ ^ 5.0.0-rc.3”
  • firebase:“ 4.13.1”

答案 7 :(得分:0)

试试这个

 npm install --save firebase @angular/fire -f