如何将安卓应用整合到Firebase实时数据库

240 阅读5分钟

在这篇文章中,我们将看到如何将我们的安卓应用程序集成到Firebase实时数据库。所以让我们开始吧。

首先让我们看看有哪些先决条件:

  1. 一个谷歌Firebase账户
  2. 在你的工作站上安装Android Studio
  3. 互联网(当然是XD)

目录:

  1. 在Firebase账户中创建数据库
  2. 将Android Studio连接到数据库
  3. 编写应用程序的代码

在Firebase账户中创建数据库

首先,登录到你的Firebase账户。登录后,点击添加项目,以便在你的账户中创建一个新的firebase数据库。指定我们数据库的名称,然后点击继续。你会被要求对Firebase项目进行谷歌分析,你可以启用或禁用它。然后再次点击继续。现在选择默认账户并按继续。现在我们已经成功地为我们的应用程序创建了数据库。我们已经准备好进行下一步了。

将Android Studio连接到数据库

在你的工作站中打开Android studio,用一个空的活动创建一个新的Android应用程序。指定你想要的名字,并确保你选择Java作为语言。现在点击完成,我们已经成功创建了我们的安卓应用程序。

创建完应用程序后,在菜单栏中导航到工具选项,在工具的下拉列表中点击Firebase。在你点击Firebase后,一个侧边栏会出现。现在点击实时数据库。点击第一个选项,上面写着Get Started with Realtime Database,然后执行以下步骤。

  • 点击 "连接到Firebase"。
    • 它可以要求你先建立应用程序,建立它。
    • 它将把你重定向到你的浏览器,在那里你必须为你的应用程序选择数据库。
    • 选择我们之前创建的数据库。
    • 点击连接,它会显示你的Android Studio项目已经连接到你的Firebase Android应用程序的确认信息。
  • 点击添加实时数据库到你的应用程序。
    • 它将把Firebase实时数据库库添加到你的Android应用程序中。
    • 点击接受更改。
    • 它将再次构建你的应用程序。现在我们就可以开始了。

你现在可以最小化Firebase配置的侧边栏了。

编写应用程序的代码

现在是时候编写我们应用程序的最终代码了,它将执行数据库操作。打开activity_main.xml。你可以选择你喜欢的任何布局,我将选择相对布局。添加一些EditText、Buttons、TextView,以便执行插入、删除和查看操作。在添加了1个EditText、1个Button和1个TextView后,你的activity_main.xml将看起来像这样。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <EditText
        android:id="@+id/Input"
        android:layout_width="320dp"
        android:layout_height="40dp"
        android:hint="Input your text here!"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="150dp"
        />

    <Button
        android:id="@+id/Submit"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Submit"
        android:layout_below="@id/Input"
        android:layout_centerInParent="true"
        android:layout_marginTop="50dp"
        />

    <Button
        android:id="@+id/Output"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Fetch"
        android:layout_below="@id/Submit"
        android:layout_centerInParent="true"
        android:layout_marginTop="120dp"
        />

</RelativeLayout>

我们已经成功地编码了我们应用程序的前端部分。这就是我们的应用程序的样子:
front-end-converted

现在是写后台代码的时候了,它可以帮助我们完成主要操作。打开MainActivity.java文件。首先,创建我们在前端部分创建的视图的对象,并使用findViewById方法将它们连接起来,像这样。

public class MainActivity extends AppCompatActivity {

    EditText Input;
    TextView Output;
    Button submit;

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

        Input = findViewById(R.id.Input);
        Output = findViewById(R.id.Output);
        submit = findViewById(R.id.Submit);
    }
}

现在让我们看看如何在创建的控件和一些代码的帮助下插入数据。创建FirebaseDatabase和DatabaseReference类的对象,因为它提供了访问数据库和对数据库进行操作的重要方法。

public class MainActivity extends AppCompatActivity {

    EditText Input;
    TextView Output;
    Button submit;
    FirebaseDatabase firebaseDatabase;
    DatabaseReference databaseReference;
    String fetchedText = "";

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

        Input = findViewById(R.id.Input);
        Output = findViewById(R.id.Output);
        submit = findViewById(R.id.Submit);

        firebaseDatabase = FirebaseDatabase.getInstance();
        databaseReference = firebaseDatabase.getReference("root");
        
    }
}

现在为我们的按钮写一个onClick()方法,当我们按下它时,它就会插入我们在EditText中输入的数据。同时添加一个Toast,以便我们得到插入的确认。

submit.setOnClickListener(new View.OnClickListener() 
{
    @Override
    public void onClick(View view) 
    {
    String text=Input.getText().toString().trim();
    databaseReference.push().setValue(text);
    Toast.makeText(getApplicationContext(),"Inserted!",Toast.LENGTH_LONG).show();
    }
});

我们已经成功地编写了插入操作的逻辑。现在让我们看看如何从我们的数据库中执行读操作。对于读取操作,让我们创建一个新的函数fetchData(),从数据库中获取数据。

private void fetchData()
    {
        databaseReference.addChildEventListener(new ChildEventListener() {
            @Override
            public void onChildAdded(@NonNull DataSnapshot snapshot, @Nullable String previousChildName) {
                String str = snapshot.getValue(String.class);
                fetchedText += str;
            }

            @Override
            public void onChildChanged(@NonNull DataSnapshot snapshot, @Nullable String previousChildName) {
            }

            @Override
            public void onChildRemoved(@NonNull DataSnapshot snapshot) {
            }

            @Override
            public void onChildMoved(@NonNull DataSnapshot snapshot, @Nullable String previousChildName) {
            }

            @Override
            public void onCancelled(@NonNull DatabaseError error) {
                Toast.makeText(getApplicationContext(),"Error: "+error.toString(),Toast.LENGTH_LONG).show();
            }
        });
    }

addChildEventListener()方法可以帮助我们从提供的引用中获取子节点。

测试应用程序

我们已经成功地编码了我们的应用程序。现在是时候检查我们编码的应用程序的工作情况了。让我们在我们的输入中插入一些假的数据。

  • 插入Lorem作为输入。

Insert-1

  • 插入Ipsum作为输入。

Insert-2

正如你所看到的,我们得到了确认,我们已经成功地插入了文本到我们的数据库。现在让我们检查我们的Firebase实时数据库。

Database-SS

现在让我们测试一下我们的获取数据的操作。你只需要点击Fetch按钮就可以了。

Fetch

这样,我们就得到了我们在祝酒词中提供的数据。现在我们已经成功地测试了我们的应用程序,它的工作完全正常。

通过OpenGenus的这篇文章,你一定对整合安卓应用到Firebase实时数据库有了完整的了解。