gpt4 book ai didi

android - 确保首先在 Android 中调用 FirebaseApp.initializeApp(Context)

转载 作者:IT王子 更新时间:2023-10-29 00:10:20 25 4
gpt4 key购买 nike

我正面临这个问题,并在这个网站上看到了一些答案,但没有得到任何适当的解决方案。
我使用了以前版本的 Firebase 工作正常,但是当我尝试使用 Upgradation 进行升级时并将 Firebase 类更新为 DatabaseReference 它显示错误并且无法正常工作。
我正在添加我的 list 文件的整个代码,所以请帮我解决这个问题。
这是我的 manifest

    <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="firebasechat.com.firebasechat">

<uses-permission android:name="android.permission.INTERNET" />

<application
android:allowBackup="true"
android:name=".Activity.SimpleBlog"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".Activity.RegisterActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

</application>

</manifest>

我的Module app如下。

    apply plugin: 'com.android.application'

android {
compileSdkVersion 26
buildToolsVersion "26.0.0"
defaultConfig {
applicationId "firebasechat.com.firebasechat"
minSdkVersion 15
targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

multiDexEnabled true

}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
packagingOptions {
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE-FIREBASE.txt'
exclude 'META-INF/NOTICE'
}
}



dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:26.+'
compile 'com.android.volley:volley:1.0.0'
compile "com.google.firebase:firebase-database:11.0.0"
compile 'com.google.android.gms:play-services:11.0.0'
compile 'com.android.support:recyclerview-v7:25.0.0'
testCompile 'junit:junit:4.12'
testCompile 'junit:junit:4.12'
}

项目等级

    // Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.3'
classpath 'com.google.gms:google-services:4.2.0'// Updated version of google service
}
}
allprojects {
repositories {
jcenter()
maven {
url "https://maven.google.com" // Google's Maven repository
}
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}

下面是我的Activity

    public class RegisterActivity extends AppCompatActivity {

EditText username, password;
Button registerButton;
String user, pass;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);

username = (EditText)findViewById(R.id.username);
password = (EditText)findViewById(R.id.password);
registerButton = (Button)findViewById(R.id.registerButton);


FirebaseApp.initializeApp(this);



registerButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
user = username.getText().toString();
pass = password.getText().toString();


final ProgressDialog pd = new ProgressDialog(RegisterActivity.this);
pd.setMessage("Loading...");
pd.show();

String url = "https://pure-coda-174710.firebaseio.com/users.json";

StringRequest request = new StringRequest(Request.Method.GET, url, new Response.Listener<String>(){
@Override
public void onResponse(String s) {

// Firebase reference = new Firebase("https://pure-coda-174710.firebaseio.com/users");
DatabaseReference reference = FirebaseDatabase.getInstance()
.getReferenceFromUrl("https://pure-coda-174710.firebaseio.com/users");


if(s.equals("null")) {
reference.child(user).child("password").setValue(pass);
Toast.makeText(RegisterActivity.this, "registration successful", Toast.LENGTH_LONG).show();
}
else {
try {
JSONObject obj = new JSONObject(s);

if (!obj.has(user)) {
reference.child(user).child("password").setValue(pass);
Toast.makeText(RegisterActivity.this, "registration successful", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(RegisterActivity.this, "username already exists", Toast.LENGTH_LONG).show();
}

} catch (JSONException e) {
e.printStackTrace();
}
}

pd.dismiss();
}

},new Response.ErrorListener(){
@Override
public void onErrorResponse(VolleyError volleyError) {
System.out.println("" + volleyError );
pd.dismiss();
}
});

RequestQueue rQueue = Volley.newRequestQueue(RegisterActivity.this);
rQueue.add(request);

}
});
}
}

最佳答案

在您的 SimpleBlog 应用程序类中,在 onCreate() 方法中初始化 FirebaseApp 并将其从 RegisterActivity 中移除,以便让 Firebase 初始化为 < strong>整个应用程序,而不仅仅是一个 Activity。

@Override
public void onCreate() {
super.onCreate();
FirebaseApp.initializeApp(this);
}

另外在 app gradle 末尾添加 apply plugin: 'com.google.gms.google-services':

dependencies {
....
}

apply plugin: 'com.google.gms.google-services'

需要插件来处理来自 firebase 的 json 配置并避免依赖冲突。您可以阅读here了解更多详情。

关于android - 确保首先在 Android 中调用 FirebaseApp.initializeApp(Context),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45977847/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com