Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否有用于javascript的firebase管理sdk?_Javascript_Firebase - Fatal编程技术网

是否有用于javascript的firebase管理sdk?

是否有用于javascript的firebase管理sdk?,javascript,firebase,Javascript,Firebase,我在firebase上工作,现在我在web上创建管理面板,管理员可以从管理面板中删除、添加和修改用户。当我搜索时,我得到的是nodejs的sdk,而不是JavaScript的java。当我在JavaScript中尝试下面的nodejs代码时,它给出了类似firebase的错误。凭证未定义 admin.initializeApp({ credential: admin.credential.cert({ projectId: '<PROJECT_ID>', clientEmail: '

我在firebase上工作,现在我在web上创建管理面板,管理员可以从管理面板中删除、添加和修改用户。当我搜索时,我得到的是nodejs的sdk,而不是JavaScript的java。当我在JavaScript中尝试下面的nodejs代码时,它给出了类似
firebase的错误。凭证
未定义

admin.initializeApp({
credential: admin.credential.cert({
projectId: '<PROJECT_ID>',
clientEmail: 'client email id',
privateKey: '-----BEGIN PRIVATE KEY-----\n<KEY>\n-----END PRIVATE     KEY-----\n'}),
databaseURL: 'https://<DATABASE_NAME>.firebaseio.com'
});
admin.initializeApp({
凭证:admin.credential.cert({
projectId:“”,
客户邮件:“客户电子邮件id”,
privateKey:'----开始私钥------\n\n----结束私钥------\n'}),
数据库URL:'https://.firebaseio.com'
});

没有专门针对服务器端的管理SDK,因为它可以不受限制地访问firebase项目。切勿将管理员凭据放在前端

您需要的功能可以使用firebase https功能实现。在firebase函数上创建api,并在函数内部进行检查,以检查用户是否有权删除/添加/修改该用户

以下是一些帮助您入门的资源:

Firebase功能:

HTTP功能:


管理员SDK:

有一种方法。如果查看源代码,您将看到它们使用admin-service-account.json文件中的oauth2凭据并获得令牌。 每个api调用都使用这个令牌来发出请求。 我最近这样做是为了在一个flutter应用程序中从前端发送通知。这是dart中的一些旧代码。但这就是流动的方式

var response = await 
http.post("https://accounts.google.com:443/o/oauth2/token",
  headers: {
   'Content-Type': 'application/x-www-form-urlencoded',
  },
  body: "grant_type=urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Ajwt- 
    bearer&assertion=jot"
  );
print("Response status: ${response.statusCode}");
print("Response body: ${response.body}");
var body = json.decode(response.body);
var token = body['access_token'];
print(token);
var response2 = await http.post("${Config.fcmUrl}/messages:send",
  headers: {
   "Content-Type": 'application/json',
   "Sdk-Version": 'Node/Admin/<XXX_SDK_VERSION_XXX>',
   'access_token_auth': 'true',
   "Authorization": "Bearer $token",
  },
  body: json.encode({
    "message": {
      "topic": "live",
        "notification": {
          "body": "This is a Firebase Cloud Messaging Topic Message!",
          "title": "FCM Message",
        },
      },
    },
  ));
print("Response status: ${response2.statusCode}");
print("Response body: ${response2.body}");
var响应=等待
http.post(“https://accounts.google.com:443/o/oauth2/token",
标题:{
“内容类型”:“应用程序/x-www-form-urlencoded”,
},
正文:“授权类型=urn%3Aietf%3Aparams%3Aoauth%3Agrant类型%3Ajwt-
持票人&断言=jot“
);
打印(“响应状态:${Response.statusCode}”);
打印(“响应正文:${Response.body}”);
var body=json.decode(response.body);
var token=body['access_token'];
打印(代币);
var response2=wait http.post(“${Config.fcmUrl}/messages:send”,
标题:{
“内容类型”:“应用程序/json”,
“Sdk版本”:“Node/Admin/”,
“访问令牌认证”:“真”,
“授权”:“持票人$token”,
},
正文:json.encode({
“信息”:{
“主题”:“现场”,
“通知”:{
“正文”:“这是Firebase云消息主题消息!”,
“标题”:“FCM消息”,
},
},
},
));
打印(“响应状态:${response2.statusCode}”);
打印(“响应正文:${response2.body}”);
“是否有用于javascript的firebase管理sdk?”:

简短回答:“是的” firebase的管理sdk目前仅用于“Node js”,但它使用javascript作为其语言。要对firebase资源执行任何基于管理的操作,请使用nodejs和express,这与firebase托管配合使用效果很好

另请看firebase函数

在这里,您可以找到一些预定义功能的预制函数,这样您就不必自己编写代码了

管理sdk:

Nodejs是JavaScript!实际上,nodejs是基于chome的V8引擎的运行时环境,可以执行javascript代码。所以无论我们编写什么javascript,我们都可以在节点中执行它。所以nodejs本身并不是一种语言。这是一种环境。