我有一个使用firebase作为数据库的ember应用程序。有一次,我需要我的nodejs服务器进行身份验证才能读/写数据库。
如果我不需要身份验证,我可以执行以下操作:
interface Callback { (data: any): void; }
declare class EventSource {
onmessage: Callback;
onerror: Callback;
addEventListener(event: string, cb: Callback): void;
constructor(name: string);
close: () => void;
}
但是当我确实需要身份验证时,我找到了两种方法。它们都使用私有admin-sdk密钥。 So the first我做的是这个:
案例1
firebase = require('firebase')
// firebaseConfigGetter() returns my webAPI key and other stuff
firebase.initializeApp(apiKeys.FirebaseConfigGetter());
// Do Server Stuff
这很有效。但是后来,我读到了here,这也很好
案例2
admin = require('firebase-admin')
// adminConfigGetter returns my private admin-sdk key and other stuff
admin.initializeApp(apiKeys.adminConfigGetter());
// Do Server Stuff
两者都为我的服务器提供了我需要的身份验证,但其中一个使用firebase = require('firebase')
firebase.initializeApp(apiKeys.adminConfigGetter());
// Do Server Stuff
而另一个只使用require('firebase-admin')
。所以我只是好奇:如果我拥有使用案例2 所需的所有身份验证权限,那么使用案例1 有什么好处? Firebase-Admin是否授予我非特权的权利?
谢谢!