μ νκ·Έμ μ£Όμ λ³κ²½ μ¬ν: "cordova-plugin-firebase": "^0.1.24",
FAILURE: μμΈμ ν¨κ» λΉλμ μ€ν¨νμ΅λλ€.
string.xmlμ λ΄μ©:
<?xml version='1.0' encoding='utf-8'?>
<resources>
<string name="app_name">My app name</string>
<string name="launcher_name">@string/app_name</string>
<string name="activity_name">@string/launcher_name</string>
<string name="google_app_id">xxxxxxx---xxxxxxx</string>
<string name="google_api_key">xxxxxxx---xxxxxxx</string>
<string name="google_app_id">@string/google_app_id</string>
<string name="google_api_key">@string/google_api_key</string>
</resources>
google_app_id λ° google_api_keyλ μΆκ°νλ λ€λ₯Έ νλ¬κ·ΈμΈμ΄ μμ μ μμ΅λλ€.
0.1.24μμλ κ°μ λ¬Έμ μ μ§λ©΄νμ΅λλ€. ~κ·Έλ¦¬κ³ μ΄ λ¬Έμ λ λ¦΄λ¦¬μ€ λΉλμμλ§ λ°μν©λλ€.~
google_app_id λ° google_api_keyλ μΆκ°νλ λ€λ₯Έ νλ¬κ·ΈμΈμ΄ μμ΅λλ€.
λ¬Έμ λ₯Ό μ¬ννλ €λ©΄:
λ¬Έμ λ ios νλ«νΌμ΄ μΆκ°λλ©΄ after_prepare νμΌμ΄ λ€μ μ€νλλ€λ κ²μ
λλ€.
λν λ€μμ μλν©λλ€.
if (directoryExists(IOS_DIR)) {
copyKey(PLATFORM.IOS);
} else if (directoryExists(ANDROID_DIR)) {
copyKey(PLATFORM.ANDROID, updateStringsXml)
}
λ°λΌμ copyKey(PLATFORM.ANDROID, updateStringsXml)κ° μ€νλκ³ ,
ν€λ₯Ό 볡μ¬ν λ€μ ν¨μ μμΈκ° λ°μνλ―λ‘ μ½λ°± ν¨μκ° νΈμΆλμ§ μμ΅λλ€.
λꡬλμ΄ λ¬Έμ μ ν΄κ²°μ±
μ μ°Ύμμ΅λλ€. λΉλκ° μ±κ³΅ν ν plugin.xmlμμ λͺ μ€μ μ κ±°νλ €κ³ μλνμ§λ§ λ‘κ·Έμμ μλ μ€λ₯λ₯Ό 보μμ΅λλ€.
GoogleServiceλ₯Ό μ΄κΈ°ννμ§ λͺ»νμ΅λλ€. μν: 10, μ΄λ¦μ΄ google_app_idμΈ λ¬Έμμ΄ λ¦¬μμ€μμ Google μ± ID κ°μ΄ μμ΅λλ€.
μλ , λλ λνμ΄ λ¬Έμ κ° μμ΅λλ€. λ²μ 0.1.22κ° μ μκ² λ§μ§λ§μΌλ‘ μλν©λλ€.
@zerdosκ° νμΈνμ΅λλ€. μ’μ λΆμμ λλ€.
λλ μ½λ₯΄λλ° νλ«νΌμ΄ iosλ₯Ό μΆκ°νκΈ° μ μ μ½λ₯΄λλ° νλ«νΌ μΆκ° μλλ‘μ΄λλ₯Ό νκ³ μμλλ° ... μ΄μ μλν©λλ€.
cordova build android
ν λλ§λ€ μ΄ λ¬Έμ κ° λ°μν©λλ€. λ§€λ² google_app_id / keyλ₯Ό res/values/strings.xmlμ λ€μ μΆκ°νλ―λ‘ λΉλκ° μ€ν¨ν©λλ€.
@inidona λ₯Ό 0.1.22λ‘ λ€μ΄κ·Έλ μ΄λνλ κ²λ μ μκ² ν¨κ³Όμ μ΄μμ΅λλ€.
κ°μ λ¬Έμ κ° λ°μν©λλ€. κ·Έλ¬λ μ€μ after_prepareμ λ΄μ©μ npm ν¨ν€μ§ λ²μ λ³΄λ€ μ΅μ λ²μ μ΄μ§λ§ μ€ν¬λ¦½νΈλ κ°μ λ μ§ λ²μ μ λ³ν©λμμ΅λκΉ?
$ cordova clean android
μ¬κΈ°μμ μΌνμ΅λλ€
λ΄κ° λ―Ώλ λ¬Έμ λ ꡬμ±μμ λ€μκ³Ό κ°μ΅λλ€.
<config-file parent="/resources" target="res/values/strings.xml">
<string name="google_app_id">@string/google_app_id</string>
</config-file>
<config-file parent="/resources" target="res/values/strings.xml">
<string name="google_api_key">@string/google_api_key</string>
</config-file>
λ¬μ±νλ €λ κ²μ΄ 무μμΈμ§ νμ€νμ§ μμ§λ§ λ΄ κ²μ λ€μμΌλ‘ λ³κ²½νμ΅λλ€.
<preference name="API_KEY"/>
<preference name="APP_ID"/>
<config-file parent="/resources" target="res/values/strings.xml">
<string name="google_app_id">$APP_ID</string>
<string name="google_api_key">$API_KEY</string>
</config-file>
μΆκ°νμ¬ νλ¬κ·ΈμΈμ μ€μΉν©λλ€.
cordova plugin add ../plugins/my-firebase-plugin --variable APP_ID=my-app-id --variable API_KEY=my-api-key
μ΄μ μ μλν©λλ€.
cordova-plugin-firebase/scripts/after_prepare.js
λ₯Ό λ³κ²½νμ¬ iosμ androidκ° λͺ¨λ μ‘΄μ¬νλ κ²½μ° λ λ€ λ³΅μ¬λλλ‘ νμ΅λλ€.
if (directoryExists(IOS_DIR)) {
copyKey(PLATFORM.IOS);
}
if (directoryExists(ANDROID_DIR)) {
copyKey(PLATFORM.ANDROID, updateStringsXml);
}
κ°μ λ¬Έμ ! μ΄λ€ ν΄κ²°μ±
μ΄ μμ΅λκΉ?
λ¨Όμ google-services.jsλ₯Ό 볡μ¬ν ν cliλ₯Ό ν΅ν΄ νλ¬κ·ΈμΈμ μΆκ°νκ³ λΉλν©λλ€. κ·Έλ¦¬κ³ μμ μ€λ₯κ° λ°μνμ΅λλ€ ....
@rabinski99 μ΄κ²μ μμ£Ό μ’μ μ μμ λλ€!
string.xmlμμ μ΄κ²μ μ κ±°νμμμ€.
<string name="google_app_id">Your API ID</string>
<string name="google_api_key">Your API KEY</string>
<string name="google_app_id">@string/google_app_id</string>
<string name="google_api_key">@string/google_api_key</string>
λλ₯Ό μν΄ μΌν΄
@stephdgenius νλ₯ν©λλ€! κ·Έκ²μ΄ μ¬λ°λ₯Έ ν΄κ²°μ± μ΄λ©° μμ νκ³ λ€λ₯Έ κ²μ μμ΅λλ€. κ·Έκ²μ λλ₯Ό μν΄ μΌνμ΅λλ€. λ§€μ° κ°μ¬ν©λλ€!
@aaaaaaaaaaaaa
μ κ±°νμ§λ§ μ§κΈμ μ΄ μ€λ₯κ° λ°μν©λλ€.
μ€λ₯: nullμ 'ν
μ€νΈ' μμ±μ μ€μ ν μ μμ΅λλ€.
string.xml λλ λΉλ μ€μ μμ±λ λͺ¨λ νμΌμ μ λ°μ΄νΈνλ κ²μ μ루μ μ΄ μλλ©° λ¬Έμ μ ν΄κ²° λ°©λ²μ λλ€. μλμΌλ‘ νμΌμ μ λ°μ΄νΈν νμ μμ΄ μμ μ μ΄κ³ λ°λ³΅ κ°λ₯ν λΉλκ° νμν©λλ€.
https://github.com/arnesson/cordova-plugin-firebase/issues/407#issuecomment -337633326
μμ μ μ΄κ³ λ°λ³΅ κ°λ₯νλ©° μλμΌλ‘ νμΌμ μ λ°μ΄νΈν νμκ° μμ΅λλ€.
Android νλ«νΌμ μ κ±°νλ€κ° λ€μ μΆκ°νλλ° μ€λ₯(Found item String/google_app_idλ₯Ό λ λ² μ΄μ μ°Ύμμ΅λλ€)κ° μ¬λΌμ‘μ΅λλ€.
μ½λ₯΄λλ° νλ«νΌ rm μλλ‘μ΄λ
μ½λ₯΄λλ° νλ«νΌ μλλ‘μ΄λ μΆκ°
λ¬Έμ μ μμΈμ μ°Ύμ κ² κ°μ΅λλ€ . https://github.com/phonegap/phonegap-plugin-push/issues/1660 μ΄ λ¬Έμ λ₯Ό μ°Έμ‘°νμΈμ.
λ³Έμ§μ μΌλ‘ μ΄κ²μ phonegap-plugin-push cordova νλ¬κ·ΈμΈμ λ²μ < 2.0μ μ¬μ©νλ κ²½μ° λ°μνλ―λ‘ λΆλͺ ν μ΄ νλ¬κ·ΈμΈμ λ²μ μ κ΄κ³μμ΄ μΆ©λμ΄ μμ κ²μ λλ€(0.1.22λ‘ μλνμ§λ§ μλνμ§ μμμ΅λλ€. ).
https://github.com/phonegap/phonegap-plugin-push/blob/master/docs/INSTALLATION.md#co -existing-with-plugins-that-use-firebaseλ μ°Έμ‘°νμμμ€.
μ§κΈμ λ«κ³ νλ¬κ·ΈμΈμ μ΅μ λ²μ μ μ¬μ ν λ¬Έμ κ° μμΌλ©΄ λ€μ μ½λλ€.
μλ
νμΈμ,
μ λ° λμμ£ΌμΈμ resultTextview νμ μ€λ₯ μ΄μ λ 무μμ
λκΉ?
@μ°μΈνλ€
보νΈλ λ¬΄ν¨ onCreate(μ μ₯λ μΈμ€ν΄μ€ μν λ²λ€) {
super.onCreate(μ μ₯λ μΈμ€ν΄μ€ μν);
setContentView(R.layout.activity_main);
Button addBtn = (Button) findViewById(R.id.addBtn);
addBtn.setOnClickListener(new View.OnClickListener()){
<strong i="11">@Override</strong>
public void OnClick(View View){
EditText FirstNumEditText = (EditText) findViewById(R.id.firstNumEditText);
EditText SecondNumEditText = (EditText) findViewById(R.id.secoundNumEditText);
TextView Result = (TextView)findViewById(R.id.resultTextview);
int num1 = Integer.parseInt(FirstNumEditText.getText() .toString());
Resources secoundNumEditText;
int num2 = Integer.parseInt(secoundNumEditText.getText() .toString());
int result = num1 + num2;
int result = num1 / num2;
int result = num1 * num2;
resultTextview.SetText{result + "");
@μ°μΈνλ€
보νΈλ λ¬΄ν¨ onCreate(μ μ₯λ μΈμ€ν΄μ€ μν λ²λ€) {
super.onCreate(μ μ₯λ μΈμ€ν΄μ€ μν);
setContentView(R.layout.activity_main);
Button addBtn = (Button) findViewById(R.id.addBtn);
addBtn.setOnClickListener(new View.OnClickListener()){
<strong i="9">@Override</strong>
public void OnClick(View View){
EditText FirstNumEditText = (EditText) findViewById(R.id.firstNumEditText);
EditText SecondNumEditText = (EditText) findViewById(R.id.secoundNumEditText);
TextView Result = (TextView)findViewById(R.id.resultTextview);
int num1 = Integer.parseInt(FirstNumEditText.getText() .toString());
Resources secoundNumEditText;
int num2 = Integer.parseInt(secoundNumEditText.getText() .toString());
int result = num1 + num2;
int result = num1 / num2;
int result = num1 * num2;
resultTextview.SetText{result + "");
μ¬κΈ°μ resultTextView μ€λ₯κ° μμ΅λλ€. μ΄μ κ° μμ΅λλ€.
κ°μ₯ μ μ©ν λκΈ
string.xmlμμ μ΄κ²μ μ κ±°νμμμ€.
λλ₯Ό μν΄ μΌν΄