【问题标题】:@firebase/database: Can't determine Firebase Database URL. Be sure to include a Project ID when calling firebase.initializeApp(). Angular@firebase/database:无法确定 Firebase 数据库 URL。请务必在调用 firebase.initializeApp() 时包含项目 ID。角
【发布时间】:2021-08-15 17:22:48
【问题描述】:

我正在创建实时聊天室 当我第一次接近它时,我成功了 但是后来我需要处理其他任务,当我回到这个任务时,首先我得到了一个错误,指出我可以两次初始化 firebase,当我修复这个时,我得到了这个错误

完整的错误信息:

chatroom.component.ts

import firebase from 'firebase/app';
import "firebase/database";
import { AuthService } from 'src/app/services/auth.service';


@Component({
  selector: 'app-chatroom',
  templateUrl: './chatroom.component.html',
  styleUrls: ['./chatroom.component.sass']
})
export class ChatroomComponent implements OnInit {

  items!: object;
  message: string = '';
  ref: any;

  constructor(
    private profileService: AuthService
  ) {
    console.log(firebase.apps)
    if (!firebase.apps.length) {

      firebase.initializeApp({
        apiKey: "blablabla",
        authDomain: "blablabla",
        databaseURL: "blablabla",
        projectId: "blablabla",
        storageBucket: "blablabla",
        messagingSenderId: "blablabla",
        appId: "blablabla"
      });
    }else {
       firebase.app();
    }

    this.ref = firebase.database().ref('messages');

    this.ref.on("value", (snapshot: any) => {
      console.log(snapshot.val());
      this.items = snapshot.val();
    });
  }


  ngOnInit(): void {

  }

  establishRoom(): void {

  }

  onSend(): void{
    this.ref.push().set({
      content: this.message,
    });

  }

}

多次检查配置内容的拼写(基本上我是从 Firebase 网站复制的)

错误在该行触发this.ref = firebase.database().ref('messages');

工作环境是 Angular 11

【问题讨论】:

  • 是 if (!firebase.apps.length) {} 解析并运行 firebase.initializeApp() 方法吗?还是它正在运行 firebase.app() 并在没有 databaseURL 或信息的情况下在其他地方初始化?

标签: javascript angular firebase firebase-realtime-database


【解决方案1】:

所以在挖掘问题之后,它发现由于某些原因默认数据库不是我想要使用的那个。 所以我最终得到了这段代码

firebase.app().delete().then(() => {

      firebase.initializeApp({
        apiKey: "...",
        authDomain: "...",
        databaseURL: "...",
        projectId: "...",
        storageBucket: "...",
        messagingSenderId: "...",
        appId: "..."
      });

      console.log(firebase.apps)

      this.ref = firebase.database().ref('rooms');

      console.log(this.ref)

    });

所以我只是删除了我不想要的默认数据库并初始化我需要的数据库

【讨论】:

    【解决方案2】:

    错误表明它在使用来自 firebase app config 的 databaseURL 值时遇到问题。

    如果您需要再次获取 Firebase 凭据,您可以通过 general settings 页面找到它们。确保提供的密钥遵循正确的格式,并将 PROJECT_ID 替换为您自己的项目 ID

    databaseURL: "https://PROJECT_ID.firebaseio.com"

    此外,如果您在应用中使用混淆,请确保它不适用于这些凭据

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-27
      • 1970-01-01
      • 2020-07-25
      • 1970-01-01
      • 2021-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多