나는 나무 딸기 파이에서 실행하고 firebase 데이터베이스에 연결하는 응용 프로그램을 만들려고합니다. 이 응용 프로그램을 C++로 작성했으며 간단한 방법이 있는지 궁금합니다.C++ Firebase 래퍼?
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 = "[email protected]"
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;
을하고 그것을 잘 작동합니다 :
나는 모듈 Pyrebase 파이썬에서 그것을했다. 그러나 내가 C++ SDK와 비슷한 것을하려고 할 때, 문서를 따라 가면 앱이 작동하지 않습니다. 그것이 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[] = "[email protected]";
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 %s\n", 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());
}
}
당신이 줄 수있을 수있는 모든 도움을 주셔서 감사합니다.