Firebase admin.database.enableLogging(true) 不工作

Firebase admin.database.enableLogging(true) not working

我使用的是 Firebase-admin 版本 5.12.0

在我的 app.js 文件中,我尝试使用 admin.database.enableLogging(true); 打印日志事件,但没有任何日志。

当我四处搜索时,我发现了这个 link 并且这个人遇到了同样的问题。 admin.database.enableLogging(true) not working

问题是当我使用 firebase.database.enableLogging(true);

时我可以获得日志

知道为什么 admin.database.enableLogging(true); 不起作用吗?

App.js 文件:

const admin = require("firebase-admin");
admin.database.enableLogging(true) // No logs get printed
admin.initializeApp({
  credential: admin.credential.cert({
    projectId: ...,
    privateKey: ...,
    clientEmail: ...
  }),
  databaseURL: ...,
  databaseAuthVariableOverride: { // this isn't working and I want to see if the admin logs will tell me why
       uid: "my-service-worker"
    }
});

const firebase = require('firebase');
firebase.database.enableLogging(true); // Logs print
var config = {
    apiKey: ...,
    authDomain: ...,
    databaseURL: ...,
    storageBucket: ...,
    messagingSenderId: ...
 };
 firebase.initializeApp(config);;

仅供参考,我想要 admin.database.enableLogging(true); 中的日志的原因是 databaseAuthVariableOverride 无法正常工作,我想看看是否可以找出原因。我无法使用 firebase.database.enableLogging(true); 日志

访问它

我只是 运行 在节点脚本中这样做:

admin.database.enableLogging(true)
ref.once("value", function(snapshot) { console.log(snapshot.key); })

得到:

p:0: Listen called for /50281844 default

p:0: Listen on /50281844 for default

p:0: {"r":25,"a":"q","b":{"p":"/50281844","h":""}}

p:0: handleServerMessage d {"p":"50281844","d":{"posts":{"newPostKey":"newKeyValue"},"user-posts":{"uid":{"newPostKey":"newKeyValue"}}}}

所以这对我来说看起来像是标准的调试日志记录。请注意,我使用了一个侦听器来获取调试日志记录。没有侦听器,Firebase 客户端将无法连接到数据库,因此不会有数据库日志输出。

更新

我从版本 4.0.4 升级到 4.2.1,它仍然为我记录。

我升级到5.12.0了,还是一样的代码记录(虽然格式看起来有点不一样)。

我完全不确定为什么添加这些代码行会使 admin.database.enableLogging(true) 正常工作,但我只是 c+p 这 4 行代码 from here 现在它打印出来了。

var db = admin.database();
var ref = db.ref("users");
ref.once("value", function(snapshot) {
  console.log(snapshot.val());
});

既然 admin.database.enableLogging(true) 正在记录,它会打印一条日志,显示 databaseAuthVariableOverride 正在工作:

@firebase/database: p:0: from server: {"r":2,"b":{"s":"ok","d":{"auth":{"uid":"my-service-worker"},"expires":1526144418}}}

我仍然无法进入我的数据库,但这是一个完全不同的问题。

现在代码如下所示:

const admin = require("firebase-admin");
admin.database.enableLogging(true) // No logs get printed
admin.initializeApp({
  credential: admin.credential.cert({
    projectId: ...,
    privateKey: ...,
    clientEmail: ...
  }),
  databaseURL: ...,
  databaseAuthVariableOverride: { // this is returning the uid that I defined
       uid: "my-service-worker"
    }
});

// I added these 4 lines of code here
var db = admin.database();
var ref = db.ref("users");
ref.once("value", function(snapshot) {
  console.log(snapshot.val());
});

const firebase = require('firebase');
firebase.database.enableLogging(true); // Logs print
var config = {
    apiKey: ...,
    authDomain: ...,
    databaseURL: ...,
    storageBucket: ...,
    messagingSenderId: ...
 };
 firebase.initializeApp(config);;