firebase / firebase/firebase-admin-node

Database connectivity errors are not propagated

未关闭
#2,004 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
api: database
主要语言
TypeScript
星标
1.7k
派生
419
平均合并
3 天 10 小时
30 天内合并 PR
16

描述

### Step 2: Describe your environment

* Operating System version: all
* Firebase SDK version: 10+
* Firebase Product: database
* Node.js version: all
* NPM version: all

### Step 3: Describe the problem

Errors in connecting to the database are not propagated to user's code. Instead, the library will wait indefinitely when an attempt is made to read or write to the database.

#### Steps to reproduce:

Provide either:
* valid credentials that do not have correct scopes or permissions to access the database
* invalid database url

App initialization will succeed.

Attempt to read or write to the database, triggering an attempt to connect to the database.

Errors will be written to the console, but the error handlers (either the callback on set() or promise rejections) will not be called.

Example error in logs:
```
@firebase/database: FIREBASE WARNING: Firebase error. Please ensure that you have the URL of your Firebase Realtime Database instance configured correctly.
```

Note that this is appears to be a change going from v9 to v10 of the firebase-admin library.

#### Relevant Code:

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

const app = firebase.initializeApp({
credential: credentialWithoutPermissions, // only one of these mistakes is required.
databaseURL: wrongDatabaseUrl,
});

const db = firebase.database();

db.ref('foo').get().then(
() => {
// won't be called because it won't succeed
},
err => {
// won't be called because the failure doesn't propagate
});
```

贡献指南

打开贡献指南

调研方向

Start by reproducing the failure with the provided firebase-admin initialization and database read example, using an invalid database URL or insufficient permissions. Compare the behavior between SDK versions 9 and 10, then trace database connection failures through the read/write error handling. Done means callbacks receive the error and promise-based operations reject instead of waiting indefinitely.

由索引模型根据 Issue 内容生成。

评估

技术栈
node.js, typescript
领域
databases
Issue 类型
缺陷
难度
4/5
预计耗时
3-5 天
活跃度
停滞
描述清晰度
基本清楚
新手友好度
42/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。