C++ Firebase wrapper?
C++ Firebase wrapper?
我正在尝试创建一个从Raspberry Pi运行并连接到Firebase数据库的应用程序。我已经用C 编写了这个应用程序,我想知道是否有一种简单的方法。
我用模块pyrebase在python中做到了:
import pyrebase
def firbaseLogIn():
directory = os.getcwd()
serviceAccount = directory + "xxx.json"
config = {
"apiKey": "xxx",
"authDomain": "xxxx",
"databaseURL": "https://example.com",
"projectId": "xxxx",
"storageBucket": "xx.example.com",
"serviceAccount": serviceAccount
}
firebase = pyrebase.initialize_app(config)
# Log the user in
email = "xxx@gmail.com"
password = "xxx"
auth = firebase.auth()
user = auth.sign_in_with_email_and_password(email, password)
# Get a reference to the database service
db = firebase.database()
# Pass the user's idToken to the push method
userInfo = db.child("users").child(user['localId']).get()
print(userInfo.val())
return;
它可以正常工作。但是,当我尝试使用C SDK类似的事情并遵循DOC时,该应用程序就无法使用。我不知道这是因为它仅适用于iOS游戏(实际上说您需要Xcode),或者因为我无法正确遵循文档。该代码不会丢任何错误。它打印了我正确签名的,但用户信息不正确。例如,UID是电子邮件,电话号码为1-888-897-5309,显然不正确。
这是我在C 中尝试的:
#include "firebase/app.h"
firebase::App* configureFirebaseApp(std::string appcwd){
std::string stringAppID = appcwd + "xxx.json";
const char* appID = &stringAppID[0];
firebase::AppOptions appOptions = firebase::AppOptions();
appOptions.set_api_key("xxx");
appOptions.set_database_url("https://xxx.xxx.com");
appOptions.set_project_id("xxx");
appOptions.set_storage_bucket("xxxxx.xxxx.com");
appOptions.set_app_id(appID);
return firebase::App::Create(appOptions);
}
#include "firebase/auth.h"
void FirebaseLogIn(std::string appcwd){
const char email[] = "xxxxx@gmail.com";
const char password[] = "xxxxx";
std::cout<<"Configuring app...n";
firebase::App* app = configureFirebaseApp(appcwd);
// Get the Auth class for your App.
firebase::auth::Auth* auth = firebase::auth::Auth::GetAuth(app);
std::cout<<"Signing in...n";
// Request anonymous sign-in and wait until asynchronous call completes.
firebase::Future<firebase::auth::User*> result =
auth->SignInWithEmailAndPassword(email, password);
if (result.status() == firebase::kFutureStatusComplete) {
if (result.error() == firebase::auth::kAuthErrorNone) {
firebase::auth::User* user = *result.result();
printf("Log in user succeeded for email %sn", user->email().c_str());
std::cout << "Name: " << user->display_name() << std::endl;
std::cout << "uid: " << user->uid() << std::endl;
std::cout << "email: " << user->email() << std::endl;
std::cout << "phone number: " << user->phone_number() << std::endl;
} else {
printf("Log in user failed with error '%s'n", result.error_message());
}
}
感谢您提供的任何帮助。
C 的官方firebase SDK是本机Android和iOS SDK的包装器。因此,它只会在这些平台上运行。
如果您针对其他平台,则需要其他库。通常,这样的库包裹了特定产品的Firebase REST API(例如Pyrebase在您的情况下为数据库做的),这使它们更有可能在平台上工作。
相关文章:
- consteval wrapper vs. source_location
- 如何将 Firebase 与基于 Linux 的客户端应用配合使用,以便与服务器进行双向消息通信
- OpenSSL fips in C++ wrapper Library 如何?错误:指纹不匹配
- C++ :: 安全地使用 reinterpret_cast 生成"wrapper"迭代器
- Java SWIG wrapper vs direct function calling
- 在 Firebase 中,如何在函数中运行C++?
- Firebase C++VS2018 SDL2-在Firebase::app::create(..)上执行异常处理
- Firebase C++ Windows 上的实时数据库连接丢失
- c++ Firebase Auth error
- Qt & Firebase C++ SDK 在 iOS 上的链接问题
- C++ Wrapper for threadx RTOS?
- 使用 Firebase 从C++获取用户的电话号码
- Firebase C++ SDK and Google Auth
- 在 Arduino Uno 与以太网防护板中使用 Firebase Arduino 库时出现错误"#include <string> while compiling"
- Firebase:混合使用C++和Objective-C SDK可以吗
- Firebase:混合C++和Java SDK可以吗?
- 传递对variadic-templates的引用使用std ::参考 - wrapper
- Firebase C 云消息传递背景问题
- 我们是否可以使用 FireBase 云消息传递来发送或接收消息,或者在 Windows 桌面/控制台或 Linux 控制
- C++ Firebase wrapper?